In diesem Handbuch können Sie Ihren Java-Code entweder mit einem signieren OV / IV or EV Codesignaturzertifikat von SSL.com. Diese Anweisungen setzen voraus, dass das Java Development Kit (JDK) auf Ihrem Computer installiert ist und dass das keytool
und jarsigner
Befehle sind in Ihrem PATH enthalten. Bei den Code-Signatur-Anweisungen von Yubikey wird davon ausgegangen, dass Ihr Zertifikat in Steckplatz 9a von a installiert ist YubiKey FIPS Token, da sie von SSL.com geliefert werden.
Wenn Sie noch kein Codesignaturzertifikat haben und nicht sicher sind, welchen Typ Sie benötigen, lesen Sie bitte diese FAQ.
OV/IV-Code-Signierung (nur für OV/IV-Zertifikate, die vor dem 1. Juni 2023 ausgestellt wurden)
Konfiguration
Methode 1: Generieren CSR und PFX-Datei im Browser
Die einfachste Methode, um schnell mit dem Signieren von Java-Code zu beginnen, ist das Generieren von a CSR und PFX-Datei, wenn Sie Ihr Zertifikat von SSL.com abrufen und in einem neuen Java-Keystore installieren.
.jar
Dateien direkt mit einer nicht konvertierten PFX-Datei durch Hinzufügen der -storetype pkcs12
Fahne zum jarsigner
Befehl.- Befolgen Sie die Schritte in Bestellen und Abrufen von Codesignaturzertifikaten um Ihr Zertifikat zu bestellen und eine PFX-Datei mit Ihrem Zertifikat und Ihrem privaten Schlüssel herunterzuladen.
- Importieren Sie den PFX mit dem folgenden Befehl in einen neuen Schlüsselspeicher mit demselben Kennwort. (Ersetzen
MY-CERTIFICATE.p12
undMY-KEYSTORE.jks
mit dem tatsächlichen Namen Ihrer PFX-Datei und dem Dateinamen, den Sie Ihrem Keystore geben möchten. Beachten Sie auch, dass diedestalias
ist beliebig und Sie können bei Bedarf einen anderen Aliaswert verwenden.)keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias Codesigning
Hinweis: Der Wert für-srcalias
für die von SSL.com heruntergeladene PFX-Datei sollte dies normalerweise sein1
Sie können dies jedoch bestätigen, indem Sie den Befehl ausführenkeytool -list -v -storetype pkcs12 -keystore MY-PFX.P12
und Überprüfen des angezeigten Werts fürAlias name
. - Sie werden aufgefordert, ein Kennwort für den Zielschlüsselspeicher und anschließend das Quellschlüsselspeicherkennwort (das Kennwort, das Sie beim Erstellen des PFX eingegeben haben) einzugeben. Möglicherweise wird auch eine Warnmeldung angezeigt, die mit beginnt
Warning: The JKS keystore uses a proprietary format
. Sie können diese Meldung ignorieren.
Methode 2: Schlüsselpaar generieren und CSR mit Java
Wenn Sie es vorziehen, Ihr Schlüsselpaar zu generieren und CSR Befolgen Sie mit Java die Schritte in diesem Abschnitt. Der Prozess ist der gleiche, mit dem ein erstellt wird CSR für ein SSL /TLS Bescheinigung auf Java.
Erstellen Sie einen Schlüsselspeicher und ein Schlüsselpaar
- Zuerst erstellen wir ein Schlüsselspeicher- und ein öffentliches / privates Schlüsselpaar. Java verwendet Dateien mit der Erweiterung
.jks
(Java KeyStore) zum Speichern von Zertifikaten und kryptografischen Schlüsseln. Geben Sie den folgenden Befehl ein, um ein Schlüsselspeicher- und ein 3072-Bit-RSA-Schlüsselpaar zu generieren. (ErsetzenMY-KEYSTORE.jks
mit dem Namen, den die Datei haben soll.)keytool -genkeypair -alias Codesigning -keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
- Sie erhalten eine Reihe von Eingabeaufforderungen. Erstellen und überprüfen Sie zunächst ein Kennwort für den Schlüsselspeicher und geben Sie dann die angeforderten Informationen ein und überprüfen Sie sie. (Ersetzen Sie die in Großbuchstaben angezeigten Werte durch Ihre eigenen Informationen.)
Keystore-Passwort eingeben: Neues Passwort erneut eingeben: Wie lautet Ihr Vor- und Nachname? [Unbekannt]: VORNAME NACHNAME Wie lautet der Name Ihrer Organisation? [Unbekannt]: UNTERNEHMEN Wie heißt Ihre Stadt oder Gemeinde? [Unbekannt]: STADT Wie heißt Ihr Staat oder Ihre Provinz? [Unbekannt]: STATE Wie lautet der aus zwei Buchstaben bestehende Ländercode für dieses Gerät? [Unbekannt]: USA Ist CN=VORNAME NACHNAME, OU=ABTEILUNG, O=FIRMA, L=STADT, ST=STAAT, C=US richtig? [Nein Ja
- Die Keystore-Datei wurde generiert und Sie können eine erstellen CSR.
Generieren CSR
- Geben Sie den folgenden Befehl ein, um a zu generieren CSR aus dem Keystore, den wir gerade erstellt haben. (Ersetzen
MY-KEYSTORE.jks
mit dem Wert, den Sie beim Erstellen des Keystores verwendet haben, undMY-CSR.csr
mit dem Namen, den Sie für die verwenden möchten CSR.)keytool -certreq -alias Codesigning -file MY-CSR.csr -keystore MEIN-KEYSTORE.jks
- Geben Sie das Kennwort ein, das Sie beim Generieren des Schlüsselspeichers erstellt haben.
Geben Sie das Keystore-Passwort ein:
- Das CSR wurde erschaffen. Wenn Sie bereit sind, Ihr Zertifikat bei SSL.com zu bestellen, öffnen Sie die Datei in einem Texteditor, um sie zu kopieren und in die Datei einzufügen CSR Feld bei der Bestellung. Der Inhalt der Datei sieht ungefähr so aus wie im folgenden Beispiel:
-----BEGIN NEW CERTIFICATE REQUEST----- MIIC5TCCAc0CAQAwcDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVNUQVRFMQ0wCwYD VQQHEwRDSVRZMRAwDgYDVQQKEwdDT01QQU5ZMRMwEQYDVQQLEwpERVBBUlRNRU5U MRswGQYDVQQDExJGSVJTVE5BTUUgTEFTVE5BTUUwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQCrRyk8VLs1THls+vfz0YtMJ3qYYl4c5c499d1YSbfQHa6L kIYhKTxvgdtbD+ePDigKB40CpeuMp5Yu8R6g2YIVBpGMrejAZYAmrzs6tfjpelh0 ocSDwYr7H8qQ9jq6MfZTu6J7EjS5RMODB6MVq1usKg3H866xbi6lqAtcktEF+zlM 4FW9Tm3H/DW2G7EnTjlMPzgaXNIU7lLar7YAWPJgv83NV8lQNCDW4lFlZLWBU95r YkJ4gfWUFUyPc+AiGbsyDdrVjPvF5yaebnFDrwheFaWeTTigSfLY688G7bpA8VvE lKioCl8nlJlc9HOBNKKdhs4qEtF0BwSE8tOgbkWPAgMBAAGgMDAuBgkqhkiG9w0B CQ4xITAfMB0GA1UdDgQWBBTmVpJp824krUaJKrQNhsSbVjJA1jANBgkqhkiG9w0B AQsFAAOCAQEALlux89RkXyHN4PQqQHbShSeTTWLURII+F+OSK9N1RS5l8V7AMcRM wvOkPP7JBRCKiaFGTW+5vcLQNnWRqQZMe0I4E0jzhL2gGsdChPIJy9Jwgn3Rzxmw 8V0lBY1SHQ9LKgSK0jIer3PQhXHDJlE2g2Dx8nJ4WJk7l2OTF9Kkly9hg8MOQdeg VIcs3HLsVI9Cwd6UHRT6ruKL3+bRgEcb6qj+qcrKHkzN7KXbOEznd10nAm87wENS mTb012ZFMlpUDvPNAHQgoGJ6slA+pIoH1fvrkosjql7R/H7Q+onm37Qa6d9L2ZqM MhgNpNWVwI0UBU4Xy4p9oUCJnvHhQ7U+3w== -----END NEW CERTIFICATE REQUEST-----
Zertifikat bestellen und abrufen
- Befolgen Sie die Schritte in Bestellen und Abrufen von Codesignaturzertifikaten durch Schritt 24. Anstatt sofort auf zu klicken Zertifikat generieren Aktivieren Sie das Kontrollkästchen ich habe mein eigenes CSR.
- Fügen Sie Ihre ein CSR in das Formularfeld und klicken Sie auf Zertifikat generieren .
- Klicken Sie auf die Herunterladen Schaltfläche und speichern Sie die
.crt
Datei an der Stelle, an der Sie Ihren Keystore generiert haben.
Zertifikat in Keystore importieren
- Verwenden Sie den folgenden Befehl, um das Zertifikat in Ihre Java-Keystore-Datei zu importieren. (Ersetzen Sie MY-CERTIFICATE.crt und MY-KEYSTORE.jks durch die tatsächlichen Dateinamen.)
keytool -importcert -file MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias Codesigning
- Geben Sie das Keystore-Passwort ein, wenn Sie dazu aufgefordert werden.
Geben Sie das Keystore-Passwort ein:
- Ihr Zertifikat ist im Keystore installiert und Sie können mit dem Signieren von Dateien beginnen.
Die Zertifikatantwort wurde im Keystore installiert
Dateien mit Jarsigner signieren
- Verwenden Sie den folgenden Befehl, um a eine digitale Signatur mit Zeitstempel hinzuzufügen
.jar
Datei. (Ersetzen/PATH/TO/MY-KEYSTORE.jks
undMY-JAR.jar
mit den tatsächlich verwendeten Dateinamen. Wenn Sie beim Einrichten Ihres Keystores einen anderen Alias verwendet haben, ersetzen Sie diesencodesigning
im Befehl.)jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks MY-JAR.jar-Codesignierung
Hinweis: Es ist auch möglich, Ihre zu unterschreiben.jar
Dateien direkt mit einer nicht konvertierten PFX-Datei durch Hinzufügen der-storetype pkcs12
Fahne zumjarsigner
Befehl.
Hinweis: Standardmäßig unterstützt SSL.com Zeitstempel von ECDSA-Schlüsseln.
Wenn Sie auf diesen Fehler stoßen:The timestamp certificate does not meet a minimum public key length requirement
, sollten Sie sich an Ihren Softwareanbieter wenden, um Zeitstempel von ECDSA-Schlüsseln zuzulassen.
Wenn Ihr Softwareanbieter die Verwendung des normalen Endpunkts nicht zulassen kann, können Sie diesen Legacy-Endpunkt verwendenhttp://ts.ssl.com/legacy
um einen Zeitstempel von einer RSA-Zeitstempeleinheit zu erhalten. - Geben Sie das Keystore-Passwort an der Eingabeaufforderung ein.
Geben Sie die Passphrase für den Keystore ein:
- Die Datei ist jetzt signiert. Sie können die Signatur mit dem folgenden Befehl überprüfen:
jarsigner -verify -verbose MY-JAR.jar
- Wenn Ihre Datei erfolgreich signiert wurde, sollte die Ausgabe des Befehls folgende Zeile enthalten:
s = Unterschrift wurde verifiziert
IV-, OV- und EV-Code-Signierung mit YubiKey
Konfiguration
Installieren Sie den PKCS # 11-Treiber und erstellen Sie die Datei eToken.cfg
Windows
- Installieren Sie OpenSC, indem Sie den Anweisungen in OpenSC folgen Windows-Schnellstart.
- Suchen Sie den OpenSC PKCS # 11-Treiber. Der Standardinstallationsort ist
C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
. - Erstellen Sie eine Konfigurationsdatei und speichern Sie sie an einem geeigneten Ort (z. B. in Ihrem Home-Verzeichnis). Der Dateiname ist beliebig, aber in diesem Handbuch werden wir verwenden
yubikey-pkcs11-java.cfg
. Die Datei sollte folgende Informationen enthalten:name = OpenSC-PKCS11 description = SunPKCS11 über OpenSC library = C: \ Programme \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
macOS
- Installieren OpenSC. Wenn du benutzt Homebrew Als Paketmanager können Sie OpenSC mit dem folgenden Befehl installieren:
brauen installieren opensc
- Suchen Sie den OpenSC PKCS # 11-Treiber. Wenn Sie mit Homebrew installiert haben, sollte die Datei unter verfügbar sein
/usr/local/lib/opensc-pkcs11.so
. - Erstellen Sie eine Konfigurationsdatei und speichern Sie sie an einem geeigneten Ort (z. B. in Ihrem Home-Verzeichnis). Der Dateiname ist beliebig, aber in diesem Handbuch werden wir verwenden
yubikey-pkcs11-java.cfg
. Die Datei sollte folgende Informationen enthalten:name = OpenSC-PKCS11 description = SunPKCS11 über OpenSC library = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0
Dateien mit Jarsigner signieren
- Verwenden Sie den folgenden Befehl, um a eine digitale Signatur mit Zeitstempel hinzuzufügen
.jar
Datei. (ErsetzenMY-JAR.jar
mit dem tatsächlichen Dateinamen, den Sie verwenden.)jarsigner -tsa http://ts.ssl.com -providerClass sun.security.pkcs11.SunPKCS11 -providerArg yubikey-pkcs11-java.cfg -keystore NONE -storetype PKCS11 MY-JAR.jar "Zertifikat für PIV-Authentifizierung"
- Geben Sie Ihre YubiKey-PIN an der Passphrase-Eingabeaufforderung ein.
Geben Sie die Passphrase für den Keystore ein:
- Die Datei ist jetzt signiert. Sie können die Signatur mit dem folgenden Befehl überprüfen:
jarsigner -verify -verbose MY-JAR.jar
- Wenn Ihre Datei erfolgreich signiert wurde, sollte die Ausgabe des Befehls folgende Zeile enthalten:
s = Unterschrift wurde verifiziert