Testsignierung

Übersicht

Für die Implementierung von TwinCAT 3 C++ Modulen auf x64-Plattformen muss der Treiber mit einem Zertifikat signiert sein.

Dieser Artikel beschreibt, wie Sie ein Testzertifikat zum Testen eines C++ Treibers erstellen und installieren können.

Testsignierung 1:

Vorgehen beim Erstellen von Testzertifikaten beachten

Entwickler verfügen möglicherweise über eine Vielzahl an Werkzeugen, um selber Zertifikate zu erstellen - bitte folgen Sie dieser Beschreibung genauestens, um den Testzertifikat-Mechanismus anzuschalten.

Die folgenden Befehle müssen in einer Kommandozeile ausgeführt werden, die auf eine der beiden Arten geöffnet wurde:

1. Auf XAE:
geben Sie im Engineering System folgenden Befehl in die Visual Studio 2010 / 2012 Eingabeaufforderung mit Administratorrechten ein (siehe Hinweis oben):
makecert -r -pe -ss PrivateCertStore -n CN=MyTestSigningCert MyTestSigningCert.cer
(Sollten Sie keine Zugriffsrechte auf den PrivateCertStore haben, können Sie eine andere Ablage nutzen. Diese muss dann im PostBuild-Event auch verwendet werden, wie
hier beschrieben.)
Daraufhin wird ein selbstsigniertes Zertifikat erstellt und in der Datei „MyTestSigningCert.cer“ und im Windows Certificate Store gespeichert.
Überprüfen Sie das Ergebnis mit mmc (Use File->Add/Remove Snap-in->Certificates):
Testsignierung 2:
2. Auf XAE:
konfigurieren Sie das Zertifikat, sodass es von TwinCAT XAE auf dem Engineering System erkannt wird.
Setzen Sie die Umgebungsvariable TWINCATTESTCERTIFICATE auf „MyTestSigningCert“ im Engineering System oder bearbeiten Sie jeweils den Post-Build Event von Debug|TwinCAT RT (x64) und Release|TwinCAT RT (x64).
Der Name der Variablen ist NICHT der Name der Zertifikatsdatei, sondern der CN-Name (in diesem Falle MyTestSigningCert).

Hinweis Ab TwinCAT 3.1 4024.0 wird die Konfiguration des zu verwendenden Zertifikates unter dem Punkt Tc Sign in den Projekt-Eigenschaften vorgenommen. Wenn Sie die Signierung über das Betriebssystem verwenden wollen, wie sie hier beschrieben ist, dann achten Sie bitte auf die Projekt-Einstellungen:

Testsignierung 3:

Auf XAR (und XAE, wenn es sich um einen lokalen Test handelt) aktivieren Sie den Testmodus, damit das Betriebssystem die selbstsignierten Zertifikate akzeptieren kann. Dies kann sowohl auf dem Engineering System (XAE) als auch auf dem Laufzeit-Systemen (XAR) vorgenommen werden.

Für Windows

Führen Sie mittels Administrator-Eingabeaufforderung folgendes aus:
bcdedit /set testsigning yes
und starten Sie das Zielsystem neu.
Es kann sein, dass Sie hierfür „SecureBoot“ abschalten müssen, was im Bios erfolgen kann.

Wenn der Testsigniermodus aktiviert ist, wird das rechts unten auf dem Desktop angezeigt. Das System akzeptiert nun alle signierten Treiber zur Ausführung.

Testsignierung 4:


Nach der jeweiligen Vorgehensweise akzeptiert das System alle signierten Treiber zur Ausführung.

1. Prüfen Sie, ob eine Konfiguration mit einem in einen TwinCAT C++ Treiber implementierten TwinCAT-Modul auf dem Zielsystem aktiviert und gestartet werden kann.
Die Kompilierung des x64-Treibers generiert eine Ausgabe wie folgt:
Testsignierung 5:

Referenzen:
MSDN, MakeCert Testzertifikate (Windows Treiber),
https://docs.microsoft.com/en-us/windows-hardware/drivers/install/makecert-test-certificate