Podpisywanie kodu Java: Generowanie żądania CSR

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

  1. W razie potrzeby pobierz zestaw JDK, używając następującego łącza:
    http://java.sun.com/javase/downloads/index.jsp
  2. Zażądaj certyfikatu podpisywania kodu od firmy GoDaddy.
    • 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 GoDaddy. 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.
  3. 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
  4. 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.
    W poniższym przykładzie dodano opcje znacznika czasu do kodu z powyższego przykładu.
    jarsigner -verbose -keystore magazyn_podpisywania_kodu -storepass -keypass -tsa http://tsa.starfieldtech.com/ moja_aplikacja.jar certyfikat_podpisywania_kodu
  5. Zweryfikuj podpisany plik JAR
    jarsigner -verify -verbose -certs moja_aplikacja.jar
  6. Dystrybuowanie kodu

Podejście 2 — Użycie istniejącego pliku PKCS#12, który zawiera certyfikat podpisywania kodu i klucz prywatny

  1. W razie potrzeby pobierz zestaw JDK, używając następującego łącza:
    http://java.sun.com/javase/downloads/index.jsp
  2. 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
  3. Utwórz plik JAR na podstawie plików klas Java, używając narzędzia jar:
    jar cvf moja_aplikacja.jar moja_aplikacja.class
  4. 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.
    W poniższym przykładzie dodano opcje znacznika czasu do kodu z powyższego przykładu:
    jarsigner -storetype pkcs12 -keystore moj_certyfikat.pfx -tsa http://tsa.starfieldtech.com/ moja_aplikacja.jar "nazwa_aliasu"
  5. Zweryfikuj podpisany plik JAR
    jarsigner -verify -verbose -certs moja_aplikacja.jar
  6. Dystrybuowanie kodu

Łącza


Czy ten artykuł był pomocny?
Dziękujemy za przekazanie informacji. Aby porozmawiać z pracownikiem obsługi klienta, zadzwoń pod numer pomocy technicznej lub skorzystaj z opcji czatu (powyżej).
Cieszymy się, że udało się nam pomóc! Czy coś jeszcze możemy dla Ciebie zrobić?
Przykro nam z tego powodu. Powiedz nam, co było niezrozumiałe lub dlaczego nie udało się rozwiązać Twojego problemu.