Podpisywanie Kodu Java: Generowanie żądania CSR
Print this Article
Last Updated:
February 2, 2015 12:37 PM
Od stycznia 2014 roku wszystkie aplikacje Java działające w przeglądarkach internetowych wymagają certyfikatów podpisywania kodu. Po kupieniu certyfikatu podpisywania kodu musisz podpisać swój kod Java.
Do umieszczenia kodu Java w pakiecie i podpisania go jest potrzebnych kilka narzędzi, w tym keytool, jar i jarsigner. Począwszy od zestawu JDK 5.0 narzędzie jarsigner może generować podpisy zawierające znacznik czasu, co umożliwia potwierdzenie, że plik JAR został podpisany, gdy certyfikat podpisywania kodu był ważny.
Podejście 1 — Żądanie nowego certyfikatu podpisywania kodu
- W razie potrzeby pobierz zestaw JDK, używając następującego łącza:
http://java.sun.com/javase/downloads/index.jsp - Zażądaj certyfikatu podpisywania kodu od firmy Starfield Technologies.
- Utwórz nowy magazyn kluczy. Magazyn kluczy to miejsce, w którym są przechowywane certyfikaty bezpieczeństwa. W tym przykładzie zostanie utworzony niestandardowy magazyn kluczy o nazwie „magazyn_podpisywania_kodu”, który będzie używany wyłącznie do przechowywania certyfikatu podpisywania kodu oraz skojarzonego z nim klucza prywatnego.
keytool -genkey -alias certyfikat_podpisywania_kodu -keypass
-keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore magazyn_podpisywania_kodu -storepass - Utwórz żądanie podpisania certyfikatu (CSR). Zostanie utworzony klucz prywatny, który będzie przechowywany w magazynie kluczy o nazwie „magazyn_podpisywania_kodu”. W bieżącym katalogu roboczym zostanie utworzony plik CSR o nazwie „moj_csr.pem”.
keytool -certreq -v -alias certyfikat_podpisywania_kodu -file moj_csr.pem -keystore magazyn_podpisywania_kodu
- Kup certyfikat podpisywania kodu.
- Kliknij kupiony kredyt na certyfikat podpisywania kodu w obszarze Moje konto. Spowoduje to otwarcie aplikacji internetowej do zarządzania kontami usług certyfikatów bezpieczeństwa Starfield. Aby pole Żądanie CSR było widoczne, należy w formularzu żądania wybrać ręczną metodę generowania żądania CSR.
- Prześlij żądanie CSR w ramach żądania podpisania kodu.
- Po otwarciu pliku „moj_csr.pem” w edytorze skopiuj całą zawartość tego pliku i wklej ją (w tym wiersze zawierające tekst BEGIN NEW CERTIFICATE REQUEST i END NEW CERTIFICATE REQUEST) w odpowiedniej sekcji formularza żądania podpisania kodu.
- Dostarczone informacje dotyczące firmy zostaną zweryfikowane. W razie potrzeby Urząd rejestracji (RA) może skontaktować się z Tobą, aby uzyskać dodatkowe informacje.
- Po wystawieniu certyfikatu podpisywania kodu otrzymasz wiadomość e-mail zawierającą łącze umożliwiające pobranie pliku certyfikatu oraz wszystkich skojarzonych z nim certyfikatów pośredniczących.
- Utwórz nowy magazyn kluczy. Magazyn kluczy to miejsce, w którym są przechowywane certyfikaty bezpieczeństwa. W tym przykładzie zostanie utworzony niestandardowy magazyn kluczy o nazwie „magazyn_podpisywania_kodu”, który będzie używany wyłącznie do przechowywania certyfikatu podpisywania kodu oraz skojarzonego z nim klucza prywatnego.
- Zainstaluj certyfikat podpisywania kodu w utworzonym wcześniej magazynie kluczy. W poniższym przykładzie przyjęto założenie, że plik certyfikatu podpisywania kodu ma nazwę „moj_certyfikat.cer”. Plik certyfikatu powinien znajdować się w bieżącym folderze roboczym i mieć format PKCS#7.
keytool -import -trustcacerts -keystore magazyn_podpisywania_kodu -storepass
-alias certyfikat_podpisywania_kodu -file moj_certyfikat.cer - Podpisz plik JAR, używając narzędzia jarsigner, certyfikatu podpisywania kodu i klucza prywatnego
jarsigner -verbose -keystore magazyn_podpisywania_kodu -storepass
-keypass moja_aplikacja.jar certyfikat_podpisywania_kodu - „magazyn_podpisywania_kodu” to alias magazynu kluczy, w którym są przechowywane certyfikat podpisywania kodu, klucz prywatny i wszystkie inne certyfikaty w łańcuchu.
- Niepodpisany plik wejściowy ma nazwę „moja_aplikacja.jar” i zostanie zastąpiony podpisaną wersją pliku. Opcja wiersza polecenia „-signedjar” umożliwia określenie osobnych nazw pliku wejściowego i wyjściowego.
- „certyfikat_podpisywania_kodu” to alias klucza prywatnego w magazynie kluczy.
jarsigner -verbose -keystore magazyn_podpisywania_kodu -storepass-keypass -tsa http://tsa.starfieldtech.com/ moja_aplikacja.jar certyfikat_podpisywania_kodu - Zweryfikuj podpisany plik JAR
jarsigner -verify -verbose -certs moja_aplikacja.jar
- Dystrybuowanie kodu
Podejście 2 — Użycie istniejącego pliku PKCS#12, który zawiera certyfikat podpisywania kodu i klucz prywatny
- W razie potrzeby pobierz zestaw JDK, używając następującego łącza:
http://java.sun.com/javase/downloads/index.jsp - Sprawdź, czy pliku PFX/P12 można użyć z narzędziem jarsigner. Wykonaj poniższe polecenie; nazwa aliasu wymagana w kroku 5 zostanie wyświetlona u góry wyników:
keytool -list -storetype pkcs12 -keystore moj_certyfikat.pfx -v
- Utwórz plik JAR na podstawie plików klas Java, używając narzędzia jar:
jar cvf moja_aplikacja.jar moja_aplikacja.class
- Podpisz plik JAR, używając narzędzia jarsigner, certyfikatu podpisywania kodu i klucza prywatnego:
jarsigner -storetype pkcs12 -keystore moj_certyfikat.pfx moja_aplikacja.jar "nazwa_aliasu"
- „moj_certyfikat.pfx” to pełna ścieżka do pliku PFX/P12 zawierającego certyfikat podpisywania kodu i klucz prywatny. Ten pliki powinien też zawierać wszystkie certyfikaty pośredniczące.
- „nazwa_aliasu” jest wyświetlana u góry wyników wykonania kodu w kroku 2. Jeśli plik PFX/P12 został wyeksportowany z systemu Windows, nazwa aliasu będzie identyfikatorem GUID.
- Gdy zostanie wyświetlony monit, wprowadź hasło skojarzone z kluczem prywatnym przechowywanym w pliku PFX/P12. Możesz także dołączyć opcję „-storepass”, aby określić hasło w wierszu polecenia.
- Niepodpisany plik wejściowy ma nazwę „moja_aplikacja.jar” i zostanie zastąpiony podpisaną wersją pliku. Opcja wiersza polecenia „-signedjar” umożliwia określenie osobnych nazw pliku wejściowego i wyjściowego.
jarsigner -storetype pkcs12 -keystore moj_certyfikat.pfx -tsa http://tsa.starfieldtech.com/ moja_aplikacja.jar "nazwa_aliasu" - Zweryfikuj podpisany plik JAR
jarsigner -verify -verbose -certs moja_aplikacja.jar
- Dystrybuowanie kodu
Łącza