bg-tutorials

So generieren Sie eine CSR für ein Code Signing-Zertifikat

Ein Code-Signing-Zertifikat beweist, wer eine Software veröffentlicht hat, und zeigt, dass der Code seit der Signierung nicht verändert wurde. Um eines zu bestellen, erstellen Sie eine CSR (Certificate Signing Request), den Block verschlüsselten Textes, den die Zertifizierungsstelle (CA) verwendet, um Sie zu identifizieren und das Zertifikat auszustellen. Für Code-Signing-CSRs gelten andere Regeln als für die CSRs, die Sie für eine Website erstellen, und diese Regeln haben sich 2023 geändert. Dieser Leitfaden erklärt den aktuellen Prozess und die Methoden, die weiterhin gelten.

Der private Schlüssel muss auf Hardware liegen

Seit dem 1. Juni 2023 verlangen die Code Signing Baseline Requirements des CA/Browser Forums, dass der private Schlüssel jedes öffentlich vertrauenswürdigen Code-Signing-Zertifikats auf Hardware erzeugt und gespeichert wird, die den Standard FIPS 140-2 Level 2, Common Criteria EAL4+ oder einen gleichwertigen Standard erfüllt. Dies gilt sowohl für Standardzertifikate (Organization Validation und Individual Validation) als auch für Extended-Validation-Zertifikate (EV). Bei EV-Code-Signing war Hardware bereits vor diesem Datum vorgeschrieben; die Änderung von 2023 hat dieselbe Regel auf Standardzertifikate ausgeweitet.

Die praktische Konsequenz ist wichtig: Ein privater Schlüssel und eine CSR, die rein in Software, im Browser oder in einer gewöhnlichen Datei auf einem Laptop oder Server erzeugt wurden, werden für ein öffentlich vertrauenswürdiges Code-Signing-Zertifikat nicht mehr akzeptiert. CAs unterstützen für diese Produkte keine browserbasierte Schlüsselerzeugung und keine herunterladbare .pfx-Auslieferung mehr. Der Schlüssel muss auf einem konformen Gerät entstehen und dort verbleiben. Damit bleiben zwei gültige Wege:

  • Ein vorkonfigurierter Hardware-Token von der CA. Die CA erzeugt das Schlüsselpaar und die CSR direkt auf einem zertifizierten USB-Token, installiert das ausgestellte Zertifikat darauf und versendet den Token an Sie. Sie signieren mit eingestecktem Token. Bei dieser Methode erstellen Sie die CSR nicht selbst.
  • Ihr eigenes HSM oder Cloud-HSM, mit Schlüsselattestierung. Wenn Sie bereits ein konformes Hardware Security Module (oder ein Cloud-HSM wie AWS CloudHSM, Azure Dedicated HSM oder Google Cloud HSM) betreiben, erzeugen Sie den Schlüssel und die CSR auf diesem Gerät und stellen eine Attestierungsdatei bereit, die der CA nachweist, dass der Schlüssel auf konformer Hardware erstellt wurde und nicht daraus exportiert werden kann.

Welchen Weg Sie wählen, legen Sie bei der Bestellung fest. Für einen direkten Vergleich siehe die Auslieferungsmethoden für Code-Signing-Zertifikate.

Option 1: Token plus Versand (die CA erstellt die CSR)

Dies ist der Weg, den die meisten Einzelpersonen und kleinen Teams wählen, da keine eigene Hardware erforderlich ist. Wenn Sie beim Bestellvorgang „Token plus Versand“ auswählen, übernimmt die CA die Schlüsselerzeugung und die Erstellung der CSR auf einem zertifizierten Token auf ihrer Seite und schickt Ihnen anschließend den Token mit dem bereits geladenen Zertifikat zu. Es gibt keine CSR, die Sie in ein Bestellformular einfügen müssten.

Was Sie statt dessen tun:

  • Führen Sie die von der CA geforderten Validierungsschritte durch (Organisations- oder Identitätsprüfung).
  • Warten Sie auf die Ankunft des physischen Tokens.
  • Installieren Sie die Token-Treiber (üblicherweise SafeNet Authentication Client) und signieren Sie Ihre Software mit angeschlossenem Token.

Option 2: Die CSR auf Ihrem eigenen HSM oder Token erzeugen

Wenn Sie bereits konforme Hardware besitzen, erzeugen Sie das Schlüsselpaar und die CSR auf diesem Gerät und liefern eine passende Attestierung mit. Die genauen Schritte hängen von der Hardware ab. Folgen Sie daher der Anleitung für Ihr Gerät oder der Dokumentation Ihres Anbieters:

Bei Cloud-HSMs (AWS CloudHSM, Azure Dedicated HSM, Google Cloud HSM) erzeugen Sie den Schlüssel innerhalb des HSM, exportieren die CSR und die von der Plattform erstellte Attestierungsdatei und reichen beides bei der Bestellung bei Ihrer CA ein.

Einige Details gelten für alle hardwaregestützten CSRs:

  • Verwenden Sie einen RSA-Schlüssel mit mindestens 3072 Bit oder einen gleichwertigen ECDSA-Schlüssel, wie es die Baseline Requirements vorschreiben.
  • Markieren Sie den Schlüssel als nicht exportierbar, damit er das Gerät nicht verlassen kann.
  • Erzeugen Sie die Attestierung gleichzeitig mit dem Schlüssel. Eine CSR ohne gültige Attestierung wird abgelehnt.

Wo die Methoden OpenSSL, Java Keytool, MMC, CertReq und Keychain heute passen

Möglicherweise haben Sie ältere Anleitungen gesehen, die eine Code-Signing-CSR mit OpenSSL, dem Java-Dienstprogramm keytool, der Microsoft Management Console (MMC), dem Windows-Befehl certreq oder Keychain Access auf macOS erstellen. Für sich allein erzeugen diese Tools einen Schlüssel in Software, sodass eine auf diesem Weg erstellte CSR heute für ein öffentlich vertrauenswürdiges Code-Signing-Zertifikat nicht gültig ist.

Sie haben aber weiterhin ihren Platz, wenn Sie sie auf konforme Hardware statt auf einen Software-Keystore richten. Zum Beispiel kann OpenSSL eine CSR gegen ein HSM über ein PKCS#11-Modul erstellen, und CertReq oder MMC können eine Anforderung erstellen, die einen Hardware-Schlüsselspeicheranbieter verwendet. Nutzen Sie diese Anleitungen nur in diesem Kontext und kombinieren Sie die Anforderung stets mit der Attestierung des Geräts:

Den Inhalt Ihrer CSR überprüfen

Bevor Sie eine CSR einreichen, bestätigen Sie, dass die Subject-Angaben korrekt sind. Wenn Sie OpenSSL zur Verfügung haben, entschlüsseln Sie die Anforderung lokal und lesen Sie sie im Klartext:

openssl req -noout -text -in codesigning.csr

Überprüfen Sie in der Ausgabe die Organisation bzw. den Common Name sowie die Schlüsselgröße. Ein gewöhnlicher CSR-Checker für Websites ist hier nicht das richtige Werkzeug, da eine Code-Signing-CSR an Hardware gebunden ist und durch Attestierung validiert wird, nicht durch einen öffentlichen HTTPS-Scan.

Häufig gestellte Fragen

Muss ich für ein Code-Signing-Zertifikat weiterhin eine CSR erstellen?

Manchmal. Wenn Sie Token plus Versand bestellen, erzeugt die CA den Schlüssel und die CSR für Sie auf dem Token, sodass Sie selbst keine CSR erstellen. Wenn Sie Ihr eigenes HSM oder Cloud-HSM verwenden, erzeugen Sie die CSR tatsächlich auf dieser Hardware und reichen sie mit einer Attestierungsdatei ein. In jedem Fall muss der Schlüssel auf konformer Hardware erzeugt werden.

Warum kann ich eine Code-Signing-CSR nicht mehr in Software erstellen?

Die Code Signing Baseline Requirements des CA/Browser Forums verlangen seit dem 1. Juni 2023 hardwaregeschützte Schlüssel. Der private Schlüssel muss auf einem Gerät erzeugt und gespeichert werden, das FIPS 140-2 Level 2, Common Criteria EAL4+ oder einen gleichwertigen Standard erfüllt. Ein in Software erzeugter Schlüssel erfüllt diese Anforderung nicht, sodass CAs kein öffentlich vertrauenswürdiges Zertifikat für eine reine Software-CSR ausstellen.

Was ist eine Attestierung, und wann benötige ich sie?

Eine Attestierung ist ein von der Hardware signierter Nachweis, dass der private Schlüssel auf einem konformen Gerät erzeugt wurde und nicht daraus exportiert werden kann. Sie benötigen sie, wenn Sie die CSR auf Ihrem eigenen HSM, Cloud-HSM oder Token erzeugen. Die CA prüft die Attestierung vor der Ausstellung des Zertifikats. Bei einem von der CA vorkonfigurierten und versendeten Token wird die Attestierung auf Seiten der CA erledigt.

Welche Schlüsselgröße sollte eine Code-Signing-CSR verwenden?

Verwenden Sie einen RSA-Schlüssel mit mindestens 3072 Bit oder einen gleichwertigen ECDSA-Schlüssel. Dies ist das von den Baseline Requirements für Code-Signing festgelegte Minimum.

Unterscheidet sich der Prozess bei EV-Code-Signing-Zertifikaten?

Die Hardware-Regel ist dieselbe. EV-Code-Signing-Zertifikate erforderten schon immer einen hardwaregeschützten Schlüssel, und seit dem 1. Juni 2023 folgen auch Standard-Code-Signing-Zertifikate derselben Anforderung. Die wesentlichen Unterschiede zwischen Standard und EV liegen im Validierungsniveau und den Vertrauenssignalen des Zertifikats, nicht in der Art der Schlüsselspeicherung.

Kann ich OpenSSL oder keytool zur Erstellung der CSR verwenden?

Nur, wenn sie auf konforme Hardware zielen. OpenSSL kann eine CSR gegen ein HSM über ein PKCS#11-Modul erstellen, und keytool, MMC oder CertReq können eine Anforderung erstellen, die auf einem Hardware-Schlüsselspeicher basiert. Eine CSR, die diese Tools aus einem gewöhnlichen Software-Keystore erstellen, wird für ein öffentlich vertrauenswürdiges Code-Signing-Zertifikat nicht akzeptiert.

Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!

Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10

A detailed image of a dragon in flight
Geschrieben von

Erfahrener Content-Autor, spezialisiert auf SSL-Zertifikate. Verwandeln Sie komplexe Cybersicherheitsthemen in klare, ansprechende Inhalte. Tragen Sie durch wirkungsvolle Narrative zur Verbesserung der digitalen Sicherheit bei.