Den här guiden kommer att komma igång med att signera din Java-kod med antingen en OV / IV or EV kodsigneringscertifikat från SSL.com. Dessa instruktioner förutsätter att Java Development Kit (JDK) är installerat på din dator och att keytool
och jarsigner
kommandon ingår i din PATH. Yubikey-kodsigneringsinstruktionerna förutsätter att ditt certifikat är installerat i kortplats 9a i a YubiKey FIPS token, eftersom de levereras av SSL.com.
Om du inte har ett kodesigneringscertifikat ännu och inte är säker på vilken typ du behöver, vänligen läs denna FAQ.
OV/IV-kodsignering (endast för OV/IV-certifikat utfärdade före 1 juni 2023)
konfiguration
Metod 1: Generera CSR och PFX-fil i webbläsaren
Den enklaste metoden för att komma igång snabbt med Java-kodsignering är att generera en CSR och PFX-fil när du hämtar ditt certifikat från SSL.com och installerar det i en ny Java-keystore.
.jar
filer direkt med en omvandlad PFX-fil genom att lägga till -storetype pkcs12
flagga till jarsigner
kommando.- Följ stegen som visas i Beställa och hämta kodsigneringscertifikat för att beställa ditt certifikat och ladda ner en PFX-fil med ditt certifikat och privata nyckel.
- Importera PFX till en ny keystore med samma lösenord med hjälp av kommandot nedan. (Byta ut
MY-CERTIFICATE.p12
ochMY-KEYSTORE.jks
med det faktiska namnet på din PFX-fil och filnamnet du vill ge din keystore. Observera också attdestalias
är godtyckligt och du kan använda ett annat aliasvärde om så önskas.)keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias codesign
Notera: Värdet för-srcalias
för PFX-filen som laddas ner från SSL.com bör normalt vara1
, men du kan bekräfta detta genom att köra kommandotkeytool -list -v -storetype pkcs12 -keystore MY-PFX.P12
och kontrollera värdet som visas förAlias name
. - Du kommer att bli ombedd att ange ett lösenord för destinationsnyckellistan och sedan om källnyckellagerlösenordet (lösenordet du angav när du skapade PFX). Du kan också se ett varningsmeddelande som börjar med
Warning: The JKS keystore uses a proprietary format
. Du kan säkert ignorera detta meddelande.
Metod 2: Skapa nyckelpar och CSR med Java
Om du föredrar att skapa ditt nyckelpar och CSR med Java, följ stegen i det här avsnittet. Processen är samma som används för att skapa en CSR för en SSL /TLS certifikat i Java.
Skapa Keystore och Key Pair
- Först skapar vi ett nyckellager och ett offentligt / privat nyckelpar. Java använder filer med tillägget
.jks
(Java KeyStore) för att lagra certifikat och kryptografiska nycklar. Ange följande kommando för att skapa en nyckellager och 3072-bitars RSA-nyckelpar. (Byta utMY-KEYSTORE.jks
med det namn du vill att filen ska ha.)keytool -genkeypair -alias kodsignering -keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
- Du kommer att presenteras med en serie uppmaningar. Skapa och verifiera först ett lösenord för nyckellagret, ange sedan och verifiera den begärda informationen. (Ersätt värdena som visas i versaler med din egen information.)
Ange nyckellagringslösenord: Ange nytt lösenord igen: Vad är ditt för- och efternamn? [Okänt]: FIRSTNAME LASTNAME Vad heter din organisation? [Okänt]: FÖRETAG Vad heter din stad eller ort? [Okänd]: STAD Vad är namnet på din stat eller provins? [Okänd]: STAT Vad är landskoden på två bokstäver för den här enheten? [Okänd]: USA Är CN=FIRSTNAME EFTERNAMN, OU=DEPARTMENT, O=COMPANY, L=CITY, ST=STATE, C=US korrekt? [Nej Ja
- Keystore-filen har genererats och du är redo att skapa en CSR.
Generera CSR
- Ange följande kommando för att skapa en CSR från keystore vi just skapade. (Byta ut
MY-KEYSTORE.jks
med det värde du använde när du skapade keystore ochMY-CSR.csr
med namnet du vill använda för CSR.)keytool -certreq -alias kodsignering -fil MY-CSR.csr -keystore MY-KEYSTORE.jks
- Ange lösenordet som du skapade när du skapade keystore.
Ange nyckelhanteringslösenord:
- Smakämnen CSR Har skapats. Om du är redo att beställa ditt certifikat från SSL.com öppnar du filen i en textredigerare för att kopiera och klistra in i CSR fält vid beställning. Innehållet i filen ser ut ungefär som exemplet som visas nedan:
-----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-----
Beställ och hämta certifikat
- Följ stegen som visas i Beställa och hämta kodsigneringscertifikat genom steg 24. I stället för att omedelbart klicka på Generera certifikat knappen, markera rutan märkt jag har min egen CSR.
- Klistra in din CSR i formulärfältet och klicka på Generera certifikat knapp.
- Klicka på Download knappen och spara
.crt
filen på samma plats som du skapade din keystore.
Importera certifikat till Keystore
- Använd följande kommando för att importera certifikatet till din Java-keystore-fil. (Ersätt MY-CERTIFICATE.crt och MY-KEYSTORE.jks med de faktiska filnamnen.)
keytool -importcert -fil MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias codesigning
- Ange lösenordet för keystore när du uppmanas till det.
Ange nyckelhanteringslösenord:
- Ditt certifikat är installerat i nyckellagret och du är redo att börja signera filer.
Certifikatsvar installerades i keystore
Signera filer med Jarsigner
- Använd följande kommando för att lägga till en tidsstämplad digital signatur till a
.jar
fil. (Byta ut/PATH/TO/MY-KEYSTORE.jks
ochMY-JAR.jar
med de faktiska filnamnen du använder. Om du använde ett annat alias när du skapade din keystore, ersätt den medcodesigning
i kommandot.)jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks MY-JAR.jar kodsignering
Obs! Det är också möjligt att signera din.jar
filer direkt med en omvandlad PFX-fil genom att lägga till-storetype pkcs12
flagga tilljarsigner
kommando.
Notera: Som standard stöder SSL.com tidsstämplar från ECDSA-nycklar.
Om du stöter på det här felet:The timestamp certificate does not meet a minimum public key length requirement
, bör du kontakta din programvaruleverantör för att tillåta tidsstämplar från ECDSA-nycklar.
Om det inte finns något sätt för din programvaruleverantör att tillåta att den normala slutpunkten används, kan du använda denna äldre slutpunkthttp://ts.ssl.com/legacy
för att få en tidsstämpel från en RSA Timestamping Unit. - Ange lösenordet för nyckellagret vid uppmaningen.
Ange lösenfras för keystore:
- Filen är nu signerad. Du kan verifiera signaturen med följande kommando:
jarsigner -verify -verbose MY -JAR.jar
- Om din fil har signerats framgångsrikt bör kommandoutgången innehålla den här raden:
s = signatur verifierades
IV-, OV- och EV-kodsignering med YubiKey
konfiguration
Installera PKCS # 11-drivrutin och skapa eToken.cfg-fil
Windows
- Installera OpenSC genom att följa instruktionerna i OpenSC Windows snabbstart.
- Leta reda på OpenSC PKCS # 11-drivrutinen. Standardinstallationsplatsen är
C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
. - Skapa en konfigurationsfil och spara den på en bekväm plats (som din hemkatalog). Filnamnet är godtyckligt, men i den här guiden kommer vi att använda
yubikey-pkcs11-java.cfg
. Filen ska innehålla följande information:namn = OpenSC-PKCS11 beskrivning = SunPKCS11 via OpenSC-bibliotek = C: \ Programfiler \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
MacOS
- installera OpenSC. Om du använder Homebrew som pakethanterare kan du installera OpenSC med följande kommando:
brygga installera opensc
- Leta reda på OpenSC PKCS # 11-drivrutinen. Om du installerade med Homebrew bör filen finnas tillgänglig på
/usr/local/lib/opensc-pkcs11.so
. - Skapa en konfigurationsfil och spara den på en bekväm plats (som din hemkatalog). Filnamnet är godtyckligt, men i den här guiden kommer vi att använda
yubikey-pkcs11-java.cfg
. Filen ska innehålla följande information:namn = OpenSC-PKCS11 beskrivning = SunPKCS11 via OpenSC-bibliotek = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0
Signera filer med Jarsigner
- Använd följande kommando för att lägga till en tidsstämplad digital signatur till a
.jar
fil. (Byta utMY-JAR.jar
med det faktiska filnamn du använder.)jarsigner -tsa http://ts.ssl.com -providerClass sun.security.pkcs11.SunPKCS11 -providerArg yubikey-pkcs11-java.cfg -keystore NONE -storetype PKCS11 MY-JAR.jar "Certificate for PIV Authentication"
- Ange din YubiKey PIN vid lösenordsfrasen.
Ange lösenfras för keystore:
- Filen är nu signerad. Du kan verifiera signaturen med följande kommando:
jarsigner -verify -verbose MY -JAR.jar
- Om din fil har signerats framgångsrikt bör kommandoutgången innehålla den här raden:
s = signatur verifierades