Deze handleiding helpt u bij het ondertekenen van uw Java-code met een OV / IV or EV code-ondertekeningscertificaat van SSL.com. Bij deze instructies wordt ervan uitgegaan dat de Java Development Kit (JDK) op uw computer is geïnstalleerd en dat de keytool
en jarsigner
opdrachten zijn opgenomen in uw PATH. De instructies voor het ondertekenen van de Yubikey-code gaan ervan uit dat uw certificaat is geïnstalleerd in slot 9a van a YubiKey FIPS token, aangezien ze worden verzonden door SSL.com.
Als je nog geen certificaat voor ondertekening van code hebt en niet zeker weet welk type je nodig hebt, lees dan dit deze veelgestelde vragen.
OV/IV Code Signing (enkel voor OV/IV certificaten uitgegeven voor 1 juni 2023)
Configuratie
Methode 1: genereren CSR en PFX-bestand in browser
De eenvoudigste methode om snel aan de slag te gaan met het ondertekenen van Java-code is het genereren van een CSR en PFX-bestand bij het ophalen van uw certificaat van SSL.com en installeer het in een nieuw Java-sleutelarchief.
.jar
bestanden rechtstreeks met een niet-geconverteerd PFX-bestand door de -storetype pkcs12
vlag aan de jarsigner
opdracht.- Volg de stappen in Code Signing Certificates bestellen en ophalen om uw certificaat te bestellen en een PFX-bestand te downloaden met uw certificaat en privésleutel.
- Importeer de PFX in een nieuwe keystore met hetzelfde wachtwoord met behulp van de onderstaande opdracht. (Vervangen
MY-CERTIFICATE.p12
enMY-KEYSTORE.jks
met de daadwerkelijke naam van uw PFX-bestand en de bestandsnaam die u aan uw keystore wilt geven. Merk ook op dat dedestalias
is willekeurig en u kunt desgewenst een andere aliaswaarde gebruiken.)keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias codesigning
Opmerking: De waarde voor-srcalias
want het van SSL.com gedownloade PFX-bestand zou normaal gesproken1
, maar u kunt dit bevestigen door de opdracht uit te voerenkeytool -list -v -storetype pkcs12 -keystore MY-PFX.P12
en het controleren van de getoonde waarde voorAlias name
. - U wordt gevraagd om een wachtwoord voor de doelsleutelopslag en vervolgens voor het bronsleutelopslagwachtwoord (het wachtwoord dat u hebt ingevoerd bij het maken van de PFX). Mogelijk ziet u ook een waarschuwingsbericht dat begint met
Warning: The JKS keystore uses a proprietary format
. U kunt dit bericht gerust negeren.
Methode 2: Genereer sleutelpaar en CSR met Java
Als u liever uw sleutelpaar en CSR met Java volgt u de stappen in deze sectie. Het proces is hetzelfde dat wordt gebruikt om een CSR een SSL /TLS certificaat op Java.
Maak Keystore en Key Pair
- Eerst maken we een sleutelarchief en een openbaar / privé-sleutelpaar. Java gebruikt bestanden met de extensie
.jks
(Java KeyStore) om certificaten en cryptografische sleutels op te slaan. Voer de volgende opdracht in om een keystore en een 3072-bit RSA-sleutelpaar te genereren. (VervangenMY-KEYSTORE.jks
met de naam die u wilt dat het bestand heeft.)keytool -genkeypair -alias codesigning -keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
- U krijgt een reeks prompts te zien. Maak en verifieer eerst een wachtwoord voor de keystore en voer vervolgens de gevraagde informatie in en verifieer deze. (Vervang de waarden die in hoofdletters worden weergegeven door uw eigen informatie.)
Voer keystore-wachtwoord in: Voer nieuw wachtwoord opnieuw in: Wat is uw voor- en achternaam? [Onbekend]: VOORNAAM ACHTERNAAM Wat is de naam van uw organisatie? [Onbekend]: BEDRIJF Wat is de naam van uw stad of plaats? [Onbekend]: STAD Wat is de naam van uw staat of provincie? [Onbekend]: STATE Wat is de tweeletterige landcode voor dit toestel? [Onbekend]: VS Is CN=FIRSTNAME LASTNAME, OU=DEPARTMENT, O=COMPANY, L=CITY, ST=STATE, C=US correct? [Nee ja
- Het keystore-bestand is gegenereerd en u bent klaar om een CSR.
Genereer een CSR
- Voer de volgende opdracht in om een CSR uit de keystore die we zojuist hebben gemaakt. (Vervangen
MY-KEYSTORE.jks
met de waarde die u hebt gebruikt bij het maken van de keystore enMY-CSR.csr
met de naam die u wilt gebruiken voor de CSR.)keytool -certreq -alias codesigning -bestand MY-CSR.csr -keystore MIJN-KEYSTORE.jks
- Voer het wachtwoord in dat u heeft aangemaakt bij het genereren van de keystore.
Voer keystore wachtwoord in:
- De CSR Is gemaakt. Als u klaar bent om uw certificaat bij SSL.com te bestellen, opent u het bestand in een teksteditor om het te kopiëren en in het CSR veld bij bestelling. De inhoud van het bestand ziet er ongeveer zo uit als in het onderstaande voorbeeld:
-----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-----
Certificaat bestellen en ophalen
- Volg de stappen in Code Signing Certificates bestellen en ophalen tot en met stap 24. In plaats van onmiddellijk op de te klikken Genereer certificaat knop, vink het vakje met het label aan Ik heb mijn eigen CSR.
- Plak je CSR in het formulierveld en klik op de Genereer certificaat knop.
- Klik op de Download knop en sla de
.crt
bestand op dezelfde plaats waar u uw sleutelarchief hebt gegenereerd.
Certificaat importeren in Keystore
- Gebruik de volgende opdracht om het certificaat in uw Java-sleutelarchiefbestand te importeren. (Vervang MY-CERTIFICATE.crt en MY-KEYSTORE.jks door de daadwerkelijke bestandsnamen.)
keytool -importcert -bestand MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias codesigning
- Voer het keystore-wachtwoord in wanneer daarom wordt gevraagd.
Voer keystore wachtwoord in:
- Uw certificaat is geïnstalleerd in de keystore en u bent klaar om bestanden te ondertekenen.
Certificaatantwoord is geïnstalleerd in keystore
Onderteken bestanden met Jarsigner
- Gebruik de volgende opdracht om een digitale handtekening met tijdstempel toe te voegen aan een
.jar
het dossier. (Vervangen/PATH/TO/MY-KEYSTORE.jks
enMY-JAR.jar
met de daadwerkelijke bestandsnamen die u gebruikt. Als je een andere alias hebt gebruikt bij het instellen van je keystore, vervang deze dan doorcodesigning
in de opdracht.)jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks MY-JAR.jar codesigning
Let op: Het is ook mogelijk om je te ondertekenen.jar
bestanden rechtstreeks met een niet-geconverteerd PFX-bestand door de-storetype pkcs12
vlag aan dejarsigner
opdracht.
Opmerking: Standaard ondersteunt SSL.com tijdstempels van ECDSA-sleutels.
Als u deze fout tegenkomt:The timestamp certificate does not meet a minimum public key length requirement
, dient u contact op te nemen met uw softwareleverancier om tijdstempels van ECDSA-sleutels toe te staan.
Als uw softwareleverancier het gebruik van het normale eindpunt niet toestaat, kunt u dit verouderde eindpunt gebruikenhttp://ts.ssl.com/legacy
om een tijdstempel te krijgen van een RSA-tijdstempeleenheid. - Voer het keystore-wachtwoord in bij de prompt.
Voer wachtwoordzin in voor keystore:
- Het bestand is nu ondertekend. U kunt de handtekening verifiëren met de volgende opdracht:
jarsigner -verify -uitgebreide MY-JAR.jar
- Als uw bestand met succes is ondertekend, moet de uitvoer van de opdracht deze regel bevatten:
s = handtekening is geverifieerd
IV-, OV- en EV-codeondertekening met YubiKey
Configuratie
Installeer PKCS # 11-stuurprogramma en maak een eToken.cfg-bestand
Windows
- Installeer OpenSC door de instructies in OpenSC's te volgen Windows Snel aan de slag.
- Zoek het OpenSC PKCS # 11-stuurprogramma. De standaard installatielocatie is
C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
. - Maak een configuratiebestand en sla het op een handige locatie op (zoals uw thuismap). De bestandsnaam is willekeurig, maar in deze handleiding gebruiken we
yubikey-pkcs11-java.cfg
. Het bestand moet de volgende informatie bevatten:name = OpenSC-PKCS11 description = SunPKCS11 via OpenSC-bibliotheek = C: \ Program Files \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
macOS
- Install opensc. Als je gebruikt Homebrew als pakketbeheerder kunt u OpenSC installeren met de volgende opdracht:
zet installatie openc
- Zoek het OpenSC PKCS # 11-stuurprogramma. Als je hebt geïnstalleerd met Homebrew, zou het bestand beschikbaar moeten zijn op
/usr/local/lib/opensc-pkcs11.so
. - Maak een configuratiebestand en sla het op een handige locatie op (zoals uw thuismap). De bestandsnaam is willekeurig, maar in deze handleiding gebruiken we
yubikey-pkcs11-java.cfg
. Het bestand moet de volgende informatie bevatten:name = OpenSC-PKCS11 description = SunPKCS11 via OpenSC-bibliotheek = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0
Onderteken bestanden met Jarsigner
- Gebruik de volgende opdracht om een digitale handtekening met tijdstempel toe te voegen aan een
.jar
het dossier. (VervangenMY-JAR.jar
met de daadwerkelijke bestandsnaam die u gebruikt.)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"
- Voer uw YubiKey-pincode in achter de wachtwoordzin.
Voer wachtwoordzin in voor keystore:
- Het bestand is nu ondertekend. U kunt de handtekening verifiëren met de volgende opdracht:
jarsigner -verify -uitgebreide MY-JAR.jar
- Als uw bestand met succes is ondertekend, moet de uitvoer van de opdracht deze regel bevatten:
s = handtekening is geverifieerd