sign

Befehl: sign

Beschreibung: Mit diesem Kommando können Sie selbsterstellte Pakete mit einem Zertifikat nach dem X.509-Standard aus dem Zertifikatsspeicher oder einer PFX-Datei signieren.

Verwendung: tcpkg sign <path>

Argumente:

<path>

Pfad zu einer .nupkg-Datei, die signiert werden soll.

Optionen:

--pfx <pfx>

Pfad zu einer PFX-Datei, die das Zertifikat und den Private Key enthält.

-p, --password <password>

Passwort für die PFX-Datei.

--thumbprint <thumbprint>

Fingerabdruck des Zertifikats im Zertifikatsspeicher, mit dem das Paket signiert werden soll.

-o, --output <output>

Pfad, auf dem das signierte Paket abgelegt werden soll. Bei keiner Angabe wird die eingegebene Datei überschrieben.

--timestamp-server <timepstamp-server> (REQUIRED)

URL eines RFC3161 Timestamp Servers. Bei “None” wird der Zeitstempel deaktiviert.

--hash-algorithm <sha256|sha384|sha512>

Der Hash-Algorithmus, der für die Signatur verwendet wird. (Default: sha512)

--timestamp-hash-algorithm <sha256|sha384|sha512>

Der Hash-Algorithmus, der genutzt wird, wenn die Zeitstempel RFC3161 verwendet werden.

--verify-after-signing

Nach der Signatur wird verifiziert, ob diese funktioniert. Dafür muss das Zertifikat Tcpkg als vertraut bekannt sein.

Beispiele:

sign 1:

Unternehmensrichtlinien zum Private Key

Ihr Unternehmen oder Ihre IT-Abteilung hat möglicherweise Bestimmungen und Richtlinien, nach denen der Private Key stärker geschützt und deshalb auf andere Weise zusammen mit dem Zertifikat erzeugt werden muss. Es ist heutzutage z. B. übliche Praxis, den Private Key in der Hardware zu schützen, zum Beispiel mit einem Crypto-Token.

  • Prüfen Sie, ob es solche Bestimmungen in Ihrem Unternehmen gibt, und berücksichtigen Sie diese.

1. Erzeugen eines eigenen Zertifikats für die Signatur
Das folgende PowerShell-Skript gibt ein Beispiel, wie Sie ein Zertifikat erstellen, den Private Key im Zertifikatsspeicher des Nutzers ablegen und als pfx-Datei exportieren, sowie den Public Key als cer-Datei exportieren:

$cert = New-SelfSignedCertificate `
-Subject "CN=TcPkg Test Signing" `
-KeyUsage DigitalSignature `
-Type CodeSigning `
-CertStoreLocation "Cert:\CurrentUser\My" `
-NotAfter (Get-Date).AddYears(2)

$password = ConvertTo-SecureString -String "test1234" -Force -AsPlainText

Export-PfxCertificate `
-Cert $cert `
-FilePath ".\test-signing.pfx" `
-Password $password

Export-Certificate `
-Cert $cert `
-FilePath ".\test-signing.cer"

Write-Host "Thumbprint: $($cert.Thumbprint)"
Write-Host "Private Key exported to: $(Resolve-Path '.\test-signing.pfx')"
Write-Host "Public Key exported to: $(Resolve-Path '.\test-signing.cer')"

2. Hinzufügen des Zertifkats mit dem Private Key zum Zertifikatsspeicher des TwinCAT Package Managers

tcpkg certificate add C:\Users\User\test-signing.pfx -p “test1234”

3. Signatur eines neu erstellten Pakets


tcpkg sign C:\Users\User\Documents\Packages\NewPackage.1.0.0.nupkg --timestamp-server None --thumbprint <thumbprint> --verify-after-signing

4. Paket und Public Key für Kunden oder Kollegen bereitstellen.