Ten przewodnik pomoże Ci rozpocząć podpisywanie kodu Java za pomocą pliku OV / IV or EV certyfikat do podpisywania kodu z SSL.com. W tych instrukcjach przyjęto założenie, że na komputerze jest zainstalowany pakiet Java Development Kit (JDK) i że keytool
i jarsigner
polecenia są zawarte w Twojej PATH. Instrukcje podpisywania kodu Yubikey zakładają, że Twój certyfikat jest zainstalowany w slocie 9a a YubiKey FIPS token, ponieważ są wysyłane przez SSL.com.
Jeśli nie masz jeszcze certyfikatu podpisującego kod i nie wiesz, jakiego typu potrzebujesz, przeczytaj to FAQ.
Podpisywanie kodu OV/IV (tylko dla certyfikatów OV/IV wydanych przed 1 czerwca 2023 r.)
systemu
Metoda 1: Wygeneruj CSR i plik PFX w przeglądarce
Najprostszą metodą szybkiego rozpoczęcia pracy z podpisywaniem kodu Java jest wygenerowanie pliku CSR i PFX podczas pobierania certyfikatu z SSL.com i zainstaluj go w nowym magazynie kluczy Java.
.jar
pliki bezpośrednio z nieprzekonwertowanym plikiem PFX, dodając rozszerzenie -storetype pkcs12
flaga do jarsigner
dowództwo.- Postępuj zgodnie z instrukcjami przedstawionymi w Zamawianie i odzyskiwanie certyfikatów podpisujących kod aby zamówić certyfikat i pobrać plik PFX z certyfikatem i kluczem prywatnym.
- Zaimportuj PFX do nowego magazynu kluczy z tym samym hasłem, używając poniższego polecenia. (Zastąpić
MY-CERTIFICATE.p12
iMY-KEYSTORE.jks
rzeczywistą nazwą pliku PFX i nazwą pliku, który chcesz nadać swojemu magazynowi kluczy. Zauważ również, żedestalias
jest dowolna i w razie potrzeby możesz użyć innej wartości aliasu).keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias kodowanie
Uwaga: Wartość dla-srcalias
dla pliku PFX pobranego z SSL.com powinien normalnie być1
, ale możesz to potwierdzić, uruchamiając poleceniekeytool -list -v -storetype pkcs12 -keystore MY-PFX.P12
i sprawdzając wyświetlaną wartośćAlias name
. - Zostaniesz poproszony o podanie hasła do docelowego magazynu kluczy, a następnie o hasło źródłowego magazynu kluczy (hasło wprowadzone podczas tworzenia PFX). Możesz również zobaczyć komunikat ostrzegawczy zaczynający się od
Warning: The JKS keystore uses a proprietary format
. Możesz bezpiecznie zignorować tę wiadomość.
Metoda 2: Wygeneruj parę kluczy i CSR z Javą
Jeśli wolisz wygenerować parę kluczy i CSR z Javą, wykonaj czynności opisane w tej sekcji. Proces jest taki sam, jak jest używany do tworzenia pliku CSR przez SSL /TLS świadectwo w Javie.
Utwórz magazyn kluczy i parę kluczy
- Najpierw utworzymy magazyn kluczy i parę kluczy publiczny / prywatny. Java używa plików z rozszerzeniem
.jks
(Java KeyStore) do przechowywania certyfikatów i kluczy kryptograficznych. Wpisz następujące polecenie, aby wygenerować magazyn kluczy i parę 3072-bitowych kluczy RSA. (ZastąpićMY-KEYSTORE.jks
z nazwą, jaką chciałbyś mieć plik).keytool -genkeypair -alias codinging -keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
- Zostanie wyświetlona seria monitów. Najpierw utwórz i zweryfikuj hasło do magazynu kluczy, a następnie wprowadź i zweryfikuj wymagane informacje. (Zastąp wartości podane wielkimi literami własnymi informacjami).
Wprowadź hasło magazynu kluczy: Wprowadź ponownie nowe hasło: Jakie jest Twoje imię i nazwisko? [Nieznane]: FIRSTNAME LASTNAME Jaka jest nazwa Twojej organizacji? [Nieznane]: FIRMA Jak nazywa się Twoje miasto lub miejscowość? [Nieznane]: MIASTO Jak nazywa się Twój stan lub prowincja? [Nieznane]: STAN Jaki jest dwuliterowy kod kraju dla tej jednostki? [Nieznane]: USA Czy CN=FIRSTNAME LASTNAME, OU=DZIAŁ, O=FIRMA, L=MIASTO, ST=STAN, C=US są poprawne? [nie tak
- Plik kluczy został wygenerowany i jesteś gotowy do utworzenia pliku CSR.
Generuj swój CSR
- Wprowadź następujące polecenie, aby wygenerować plik CSR z magazynu kluczy, który właśnie utworzyliśmy. (Zastąpić
MY-KEYSTORE.jks
z wartością użytą podczas tworzenia magazynu kluczy iMY-CSR.csr
z nazwą, której chcesz używać dla CSR.)keytool -certreq -alias codinging -file MY-CSR.csr - magazyn kluczy MÓJ-KEYSTORE.jks
- Wprowadź hasło utworzone podczas generowania magazynu kluczy.
Wprowadź hasło magazynu kluczy:
- Opona CSR został stworzony. Jeśli jesteś gotowy, aby zamówić certyfikat na SSL.com, otwórz plik w edytorze tekstu, aby skopiować i wkleić do CSR pole przy zamówieniu. Zawartość pliku będzie wyglądać podobnie do poniższego przykładu:
-----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-----
Zamów i odbierz certyfikat
- Postępuj zgodnie z instrukcjami przedstawionymi w Zamawianie i odzyskiwanie certyfikatów podpisujących kod do kroku 24. Zamiast natychmiastowego klikania Wygeneruj certyfikat , zaznacz pole oznaczone Mam swoje CSR.
- Wklej swój CSR do pola formularza i kliknij Wygeneruj certyfikat przycisk.
- Kliknij Do pobrania i zapisz plik
.crt
plik w tym samym miejscu, w którym wygenerowałeś swój magazyn kluczy.
Importuj certyfikat do magazynu kluczy
- Użyj następującego polecenia, aby zaimportować certyfikat do pliku kluczy Java. (Zastąp MY-CERTIFICATE.crt i MY-KEYSTORE.jks rzeczywistymi nazwami plików).
keytool -importcert -file MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias codigning
- Po wyświetleniu monitu wprowadź hasło magazynu kluczy.
Wprowadź hasło magazynu kluczy:
- Twój certyfikat jest zainstalowany w magazynie kluczy i możesz rozpocząć podpisywanie plików.
Odpowiedź certyfikatu została zainstalowana w magazynie kluczy
Podpisuj pliki za pomocą Jarsigner
- Użyj następującego polecenia, aby dodać podpis cyfrowy ze znacznikiem czasu do pliku
.jar
plik. (Zastąpić/PATH/TO/MY-KEYSTORE.jks
iMY-JAR.jar
z rzeczywistymi nazwami plików, których używasz. Jeśli podczas konfigurowania magazynu kluczy użyłeś innego aliasu, zastąp gocodesigning
w poleceniu.)jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks Kodowanie MY-JAR.jar
Uwaga: istnieje również możliwość podpisania.jar
pliki bezpośrednio z nieprzekonwertowanym plikiem PFX, dodając rozszerzenie-storetype pkcs12
flaga dojarsigner
dowództwo.
Uwaga: Domyślnie SSL.com obsługuje znaczniki czasu z kluczy ECDSA.
Jeśli napotkasz ten błąd:The timestamp certificate does not meet a minimum public key length requirement
, należy skontaktować się z dostawcą oprogramowania, aby zezwolił na sygnatury czasowe z kluczy ECDSA.
Jeśli nie ma możliwości, aby dostawca oprogramowania zezwolił na użycie normalnego punktu końcowego, możesz użyć tego starszego punktu końcowegohttp://ts.ssl.com/legacy
aby uzyskać znacznik czasu z jednostki znacznika czasu RSA. - Po wyświetleniu monitu wprowadź hasło magazynu kluczy.
Wprowadź hasło do magazynu kluczy:
- Plik jest teraz podpisany. Możesz zweryfikować podpis za pomocą następującego polecenia:
jarsigner -weryfikacja -verbose MY-JAR.jar
- Jeśli plik został pomyślnie podpisany, dane wyjściowe polecenia powinny zawierać następujący wiersz:
s = podpis został zweryfikowany
Podpisywanie kodu IV, OV i EV za pomocą YubiKey
systemu
Zainstaluj sterownik PKCS # 11 i utwórz plik eToken.cfg
Windows
- Zainstaluj OpenSC, postępując zgodnie z instrukcjami w OpenSC Szybki start systemu Windows.
- Znajdź sterownik OpenSC PKCS # 11. Domyślna lokalizacja instalacji to
C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
. - Utwórz plik konfiguracyjny i zapisz go w dogodnej lokalizacji (np. W katalogu domowym). Nazwa pliku jest dowolna, ale w tym przewodniku użyjemy
yubikey-pkcs11-java.cfg
. Plik powinien zawierać następujące informacje:name = OpenSC-PKCS11 description = SunPKCS11 przez bibliotekę OpenSC = C: \ Program Files \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
macOS
- Zainstalować OpenSC. Jeśli użyjesz Homebrew jako menedżer pakietów możesz zainstalować OpenSC za pomocą następującego polecenia:
instalacja parzenia opensc
- Znajdź sterownik OpenSC PKCS # 11. Jeśli zainstalowałeś za pomocą Homebrew, plik powinien być dostępny pod adresem
/usr/local/lib/opensc-pkcs11.so
. - Utwórz plik konfiguracyjny i zapisz go w dogodnej lokalizacji (np. W katalogu domowym). Nazwa pliku jest dowolna, ale w tym przewodniku użyjemy
yubikey-pkcs11-java.cfg
. Plik powinien zawierać następujące informacje:name = OpenSC-PKCS11 description = SunPKCS11 przez bibliotekę OpenSC = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0
Podpisuj pliki za pomocą Jarsigner
- Użyj następującego polecenia, aby dodać podpis cyfrowy ze znacznikiem czasu do pliku
.jar
plik. (ZastąpićMY-JAR.jar
rzeczywistą nazwą pliku, którego używasz).jarsigner -tsa http://ts.ssl.com -providerClass sun.security.pkcs11.SunPKCS11 -providerArg yubikey-pkcs11-java.cfg -keystore BRAK -storetype PKCS11 MY-JAR.jar "Certyfikat uwierzytelnienia PIV"
- Wprowadź swój PIN YubiKey po wyświetleniu monitu o hasło.
Wprowadź hasło do magazynu kluczy:
- Plik jest teraz podpisany. Możesz zweryfikować podpis za pomocą następującego polecenia:
jarsigner -weryfikacja -verbose MY-JAR.jar
- Jeśli plik został pomyślnie podpisany, dane wyjściowe polecenia powinny zawierać następujący wiersz:
s = podpis został zweryfikowany