instrukcja aktywacji i instalacji certum code signing...s t r o n a | 3 certum powszechne centrum...
TRANSCRIPT
Instrukcja
aktywacji i instalacji
Certum Code Signing
S t r o n a | 2
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Spis treści
1 Opis produktu .................................................................................................................................. 3
2 Instalacja oprogramowania ............................................................................................................. 3
3 Elementy niezbędne do wgrania certyfikatu Code Signing na kartę kryptograficzną ..................... 4
4 Instalacja certyfikatu ....................................................................................................................... 7
Wymagania .............................................................................................................................. 7
Aktywacja certyfikatu .............................................................................................................. 7
5 Wgrywanie certyfikatu na kartę .................................................................................................... 14
6 Signtool .......................................................................................................................................... 19
Opis narzędzia ....................................................................................................................... 19
Podpisywanie......................................................................................................................... 19
6.3 Weryfikacja ................................................................................................................................ 21
6.4 Podpisywanie wsadowe ............................................................................................................ 22
Podpis dualny ........................................................................................................................ 22
7 Jarsigner......................................................................................................................................... 24
7.1 Opis narzędzia ............................................................................................................................. 24
7.2 Konfiguracja ................................................................................................................................. 24
7.1.1 Utworzenie pliku konfiguracyjnego provider.cfg .......................................................... 24
7.1.2 Utworzenie pliku ścieżki certyfikatu bundle.pem ......................................................... 25
7.1.3 Zmiana aliasu użytkownika (labela) na karcie (tylko dla użytkowników posiadających
znaki diakrytyczne w polu Common Name (CN) w certyfikacie) ................................................... 29
Podpisywanie......................................................................................................................... 34
Weryfikacja ............................................................................................................................ 35
Podpisywanie wsadowe ........................................................................................................ 36
8 Najczęstsze problemy: ................................................................................................................... 38
S t r o n a | 3
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
1 Opis produktu
Certyfikat Code Signing, służy do podpisywania kodu oraz gotowych już zbudowanych aplikacji.
Certyfikat nagrywany jest na kartę kryptograficzną, co pozwala nam podpisywać kod oraz gotowe
aplikacje używając znanych narzędzi takich jak signtool.exe oraz jarsigner.
Instrukcja opisuje ścieżkę aktywacji oraz instalacji certyfikatu oraz jak zainstalować potrzebne
oprogramowanie i w jaki sposób - za pomocą znanych aplikacji podpisać lub zweryfikować podpisany
już kod lub aplikację.
2 Instalacja oprogramowania
Do poprawnego działania Code Signing potrzebna jest aplikacja proCertum
CardManager w wersji 3.2.0.151 lub wyższej.
Aby poprawnie zainstalować aplikację trzeba wykonać następujące kroki:
1. Pobrać najnowszą wersję oprogramowania z oficjalnej strony Certum.
2. Uruchomić pobrany instalator.
3. Po uruchomieniu instalatora kliknąć przycisk
4. Po pojawieniu kolejnego ekranu zaznaczyć „Akceptuję warunki umowy
licencyjnej” i kliknąć .
5. Po pojawieniu się kolejnego ekranu należy wybrać ścieżkę w której ma być zainstalowana
aplikacja. Domyślnie jest to ścieżka:
i kliknąć .
6. Po pojawieniu się kolejnego ekranu należy kliknąć przycisk .
Po zakończeniu pracy instalatora należy ponownie uruchomić komputer. W tym celu należy zaznaczyć:
Tak, chcę teraz uruchomić ponownie komputer
7. i kliknąć przycisk .
S t r o n a | 4
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
3 Elementy niezbędne do wgrania certyfikatu Code Signing na kartę
kryptograficzną
Aby wgrać certyfikat Code Signing na kartę kryptograficzną prosimy postępować zgodnie z poniższą
instrukcją:
1. Zainstalować Zestaw Code Signing (patrz instrukcja dołączona do zakupionego zestawu).
2. Uruchomić oprogramowanie proCertum CardManager (aktualna wersja oprogramowania dostępna
jest na stronie www.certum.pl > Wsparcie techniczne > Oprogramowanie i biblioteki > proCertum
CardManager).
3. Kliknąć przycisk . .
4. Po pojawieniu się okna z opcjami zaznaczyć opcję:
5. Zrestartować system. Po restarcie systemu włożyć czytnik z kartą kryptograficzną.
6. Uruchomić aplikację proCertum CardManager.
7. Jeżeli karta została odczytana pomyślnie powinno pojawić się okno jak na grafice poniżej:
3. Przejść do zakładki Profil zwykły.
4. Sprawdzić czy Profil zwykły jest aktywny - oprogramowanie wyświetli informacje na temat
wybranego profilu oraz listę certyfikatów. Jeżeli nie jest aktywny przejdź do punktu nr 5.
S t r o n a | 5
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Uwaga! Ponowna aktywacja profilu nie jest możliwa. Nie można również przywrócić stanu sprzed
aktywacji.
Na liście powinien pojawić się certyfikat:
Pole „Właściciel certyfikatu” będzie później potrzebne przy podpisywaniu kodu lub aplikacji.
Uwaga: Pojawienia się poniższego komunikatu oznacza, że na karcie kryptograficznej znajduje się klucz
prywatny, a instalacja certyfikatu nie została zakończona gdyż nie został zainstalowany poprawnie
certyfikat. Zaleca się kliknięcie guzika NIE oraz dokończenie procesu instalacji wydanego certyfikatu na
kartę.
S t r o n a | 6
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
5. Jeżeli Profil zwykły nie jest aktywny, nacisnąć przycisk Inicjalizuj profil. Wówczas zostanie
zdefiniowany nowy kod PUK i nowy kod PIN. Każdorazowo należy potwierdzić wprowadzony kod.
Nacisnąć przycisk OK aby zatwierdzić zmiany.
Aktywowanie profilu powoduje, że karta cryptoCertum jest przygotowana do instalacji certyfikatu
Code Signing.
S t r o n a | 7
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
4 Instalacja certyfikatu
Wymagania Do instalacji certyfikatu będzie potrzebna aplikacja proCertum CardManager (Opis instalacji
i konfiguracji znajduje się poniżej), przeglądarka Internet Explorer w wersji 8,9,10 lub 11 oraz
czytnik z kartą kryptograficzną na której zainicjowany jest profil zwykły, podpięty do
komputera.
Aktywacja certyfikatu 1. Po otrzymaniu zdrapki wejść na adres internetowy sklepu Certum: https://sklep.certum.pl/
2. Kliknąć przycisk Zaloguj/Zarejestruj się
1. Zalogować się na konto Certum (jeżeli nie posiadamy konta w sklepie to wymagane jest jego
założenie)
4. Kliknąć w przycisk "Twoje konto"
S t r o n a | 8
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
5. W przypadku otrzymania kodu aktywacyjnego, przejść do sekcji "Kody elektroniczne" i aktywujemy
kod. W przypadku gdy nie posiadasz kodu elektronicznego produktu przejdź do punktu nr 6.
6. Jeżeli nie posiadasz kodu lub pomyślnie aktywowałeś wcześniej kod, przechodzimy do zakładki
"Aktywacja Certyfikatów"
S t r o n a | 9
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
7. Na liście poniżej należy odszukać odpowiedni certyfikat który chcemy aktywować i kliknąć przycisk
"Aktywuj"
8. Zaznaczyć opcję "Generowanie pary kluczy" i klikamy "Dalej"
9.1. W przypadku korzystania z przeglądarki Internet Explorer: Potwierdzić dostęp do sieci Web
klikając przycisk "Tak". W przypadku korzystania z przeglądarki Chrome lub innej przejdź do punktu
9.2.
9.2. W przypadku korzystania z przeglądarki Chrome. Pobrać i uruchomić aplikację Certum
Cryptoagent i zostawić ją uruchomioną przez cały okres instalacji kluczy na karcie.
S t r o n a | 10
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
10. Zaznaczyć opcję "Zapisz klucze na karcie Certum" kliknąć przycisk "Generuj klucze". Przy
wyświetleniu monitu o numer PIN, podać pin do karty i kliknąć "OK".
S t r o n a | 11
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
11. Po przejściu do kolejnego ekranu z informacją o pomyślnym wygenerowaniu kluczy na karcie
kliknąć przycisk "Dalej"
12. Uzupełnić formularz wniosku certyfikacyjnego danymi, które zamieszczone zostaną w certyfikacie.
Następnie, kliknąć "Dalej".
S t r o n a | 12
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
13. Jeszcze raz upewnić się czy dane są poprawne. Zaznaczyć, akceptację dla Warunki Użytkowania
oraz potwierdzić prawdziwość podanych w formularzu informacji i kliknąć "Aktywuj".
Uwaga: W przypadku zaznaczenia opcji weryfikacji telefonicznej, CERTUM skontaktuje się pod podany numer telefonu w ciągu 48 godzin roboczych. Numer telefonu podany we wniosku w celu dokonania weryfikacji telefonicznej musi być numerem firmowym i być dostępny w publicznie dostępnych rejestrach np. CEiDG, GUS, pkt.pl, panoramafirm.pl, DUNS lub innych publicznych bazach danych zakwalifikowanych do rzetelnych i wiarygodnych źródeł informacji.
S t r o n a | 13
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
14. Status naszego zgłoszenia powinien zmienić się na "Oczekuje na realizację". Na adres email podany
w formularzu wniosku certyfikacyjnego przyjdzie wiadomość z dalszymi instrukcjami. Lista
wymaganych dokumentów niezbędnych do weryfikacji tożsamości znajduje się na stronie :
http://www.certum.pl/certum/cert,wiedza_certyfikaty_code_signing_formalnosci.xml
15. Po otrzymaniu przez Certum wymaganych dokumentów i zaakceptowaniu żądania
certyfikacyjnego wysłana zostanie na adres email wiadomość o wydaniu certyfikatu Code Signing.
S t r o n a | 14
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
5 Wgrywanie certyfikatu na kartę Po przejściu całego procesu aktywacji, należy wgrać certyfikat na karcie na której były uprzednio
generowane klucze (punkty 10-12). W tym celu należy:
1. W sklepie Certum, przejść do zakładki "Zarządzanie certyfikatami":
2. Odszukać odpowiedni certyfikat, do którego generowana była para kluczy i kliknąć w niego:
3. Kliknąć przycisk "Zapisz binarnie":
S t r o n a | 15
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
4. Pobrać plik certyfikatu na dysk komputera:
5. Otworzyć proCertum CardManager:
6. Wybrać odpowiedni czytnik (jeżeli podłączony więcej niż jeden) i kliknąć przycisk "Czytaj kartę"
7. Przejść do zakładki "Profil Zwykły":
8. W przypadku pojawiania się powiadomienie o niecertyfikowanych kluczach na karcie należy wcisnąć
przycisk "Nie":
S t r o n a | 16
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
9. Kliknąć przycisk "Importuj certyfikat":
S t r o n a | 17
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
10. Wybrać pobrany uprzednio plik certyfikatu, podać pin do karty i kliknąć "OK":
11. Jeżeli proces dodawania certyfikatu zakończył się pomyślnie, na liście powinien ukazać się
certyfikat Code Signing:
S t r o n a | 18
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
12. Należy zarejestrować wybrany certyfikat w systemie operacyjnym. W tym celu wybieramy przycisk
„Rejestruj certyfikaty”:
S t r o n a | 19
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
6 Signtool
Opis narzędzia Signtool to narzędzie wiersza polecenia, które cyfrowo podpisuje pliki, weryfikuje podpisy w plikach i
oznacza pliki znacznikami czasu. Narzędzie to znaleźć można w paczce deweloperskiej Windows
(Windows SDK[Software Development Kit]). Wszystkie operacje wykonywane z Code Signing
wymagają podłączonego czytnika wraz z kartą na której jest certyfikat Code Signing. Szerszy opis
narzędzia można znaleźć pod adresem: https://msdn.microsoft.com/pl-
pl/library/8s9b9yaz(v=vs.110).aspx
Podpisywanie
Aby podpisać plik, w wierszu poleceń (cmd.exe) należy użyć następującego polecenia:
signtool sign /n "[1] " / t [2] /fd [3] /v [4]
[1] – Nazwa lub fragment nazwy właściciela certyfikatu, którą sprawdzić można w aplikacji proCertum
CardManager lub narzędziu systemowym certmgr.msc:
[2] – Adres znacznika czasu. Dla Certum http://time.certum.pl,
[3] – Nazwa algorytmu podpisu. Dostępne sha1 i sha256,
[4] – Ścieżka do podpisywanego pliku.
S t r o n a | 20
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Przykładowe, poprawne polecenia:
W rezultacie konsola cmd.exe powinna zwrócić komunikat o poprawności podpisu pliku:
The following certificate was selected:
Issued to: Asseco Data Systems S.A.
Issued by: Certum Code Signing CA SHA2
Expires: Fri Jul 06 10:16:38 2018
SHA1 hash: E0828DF9D71C4CD87A349460027F0D9CB802BF31
Done Adding Additional Store
Successfully signed: aplikacja.exe
Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
W rezultacie konsola cmd.exe powinna zwrócić komunikat o poprawności podpisu pliku:
The following certificate was selected:
Issued to: Asseco Data Systems S.A.
Issued by: Certum Code Signing CA SHA2
Expires: Fri Jul 06 10:16:38 2018
SHA1 hash: E0828DF9D71C4CD87A349460027F0D9CB802BF31
Done Adding Additional Store
Successfully signed and timestamped: aplikacja.exe
Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
signtool sign /n "Asseco Data Systems S.A." /t http://time.certum.pl/ /fd sha1 /v
aplikacja.exe
signtool sign /n "Asseco Data Systems S.A." /t http://time.certum.pl/ /fd sha256 /v
aplikacja.exe
S t r o n a | 21
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
6.3 Weryfikacja Aby zweryfikować plik, w wierszu poleceń (cmd.exe) należy użyć następującego polecenia:
[1] – Nazwa podpisanego pliku
Przykładowe, poprawne polecenie:
W rezultacie konsola cmd.exe zwraca komunikat o poprawności podpisu pliku, przykładowo:
File: aplikacja.exe
Index Algorithm Timestamp
========================================
0 sha1 Authenticode
Successfully verified: aplikacja.exe
File: aplikacja.exe
Index Algorithm Timestamp
========================================
0 sha256 Authenticode
Successfully verified: aplikacja.exe
lub o braku podpisu:
File: aplikacja.exe
Index Algorithm Timestamp
========================================
SignTool Error: No signature found.
Number of errors: 1
signtool verify /pa [1]
signtool verify /pa aplikacja.exe
S t r o n a | 22
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
6.4 Podpisywanie wsadowe W celu wsadowego podpisania wielu plików podczas jednej sesji należy je podać jako kolejne
parametry polecenia. Działanie takie eliminuje konieczność każdorazowego wywoływania komendy w
konsoli oraz wpisywania kodu PIN przy podpisie kolejnych plików.
Przykładowe polecenie:
W rezultacie konsola cmd.exe zwraca komunikat o poprawności podpisu plików: Done Adding Additional Store
Successfully signed and timestamped: aplikacja1.exe
Successfully signed and timestamped: aplikacja2.exe
Successfully signed and timestamped: aplikacja3.exe
Number of files successfully Signed: 3
Number of warnings: 0
Number of errors: 0
Podpis dualny W celu złożenia podpisu dualnego (wykorzystującego oba algorytmy: SHA-1 oraz SHA-2 należy przeprowadzić następującą procedurę:
1. Wykonać podpis aplikacji z wykorzystaniem algorytmu SHA-1 przykładowym poleceniem:
2. Następnie wykonać podpis tej samej aplikacji wykorzystując algorytm SHA-2 oraz przełącznik
/as:
signtool sign /n "Asseco Data Systems S.A." /t http://time.certum.pl/ /fd sha1 /v
aplikacja1.exe aplikacja2.exe aplikacja3.exe
signtool sign /n "Asseco Data Systems S.A." /t http://time.certum.pl/ /fd sha1 /v
aplikacja.exe
signtool sign /n "Asseco Data Systems S.A." /t http://time.certum.pl/ /fd sha256 /as /v
aplikacja.exe
S t r o n a | 23
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Wynikiem weryfikacji pliku podpisanego dualnie powinien być następujący komunikat z konsoli: File: aplikacja.exe
Index Algorithm Timestamp
========================================
0 sha1 Authenticode
1 sha256 RFC3161
Successfully verified: aplikacja.exe
Do wykonania i weryfikacji podpisu dualnego wymagany jest Windows 8 lub wyższy. W celu wykonania lub weryfikacji podpisu dualnego na systemach Windows 7 należy zapoznać się z artykułem opublikowanym przez Microsoft: https://technet.microsoft.com/en-us/library/security/2949927.
S t r o n a | 24
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
7 Jarsigner
7.1 Opis narzędzia Jarsigner to narzędzie wiersza poleceń, które cyfrowo podpisuje pliki oraz weryfikuje podpisy.
Narzędzie to znaleźć można w paczce deweloperskiej Oracle(JDK [Java Development Kit]). Wszystkie
operacje wykonywane z Code Signing wymagają podłączonego czytnika wraz z kartą na której jest
certyfikat. Szerszy opis narzędzia można znaleźć pod adresem:
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html
7.2 Konfiguracja
7.1.1 Utworzenie pliku konfiguracyjnego provider.cfg Przed rozpoczęciem używania jarsigner potrzebna jest dodatkowa konfiguracja.
W pierwszym kroku należy utworzyć plik konfiguracyjny providera dla PKCS#11. W tym celu tworzymy
nowy plik o rozszerzeniu *.cfg (przykład: provider.cfg). Jego zawartość wygląda następująco:
[1] – Nazwa providera. Najlepiej Crypto3PKCS.
[2] – Ścieżka do biblioteki PKCS. Jeżeli posiadamy zainstalowanego proCertum CardManagera ścieżka
domyślna to: C:\Windows\System32\crypto3PKCS.dll
[3] – Numer slota w którym znajduje się karta. Domyślna wartość to -1 która powoduje automatyczne
wykrycie pierwszego dostępnego slotu.
Przykładowa konfiguracja dla profilu zwykłego karty cryptoCertum:
Przykładowa konfiguracja dla karty wirtualnej Certum:
name=[1]
library=[2]
slot=[3]
name=Crypto3PKCS
library=C:\Windows\System32\crypto3PKCS.dll
slot=-1
name=SimplySignPKCS.dll
library=C:\Windows\System32\SimplySignPKCS.dll
slot=-1
S t r o n a | 25
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
7.1.2 Utworzenie pliku ścieżki certyfikatu bundle.pem Kolejnym krokiem jest utworzenie pliku ścieżki certyfikatu o rozszerzeniu*.pem (przykład:
bundle.pem). Jego zawartość wygląda następująco:
1. „Na górze”: Certyfikat użytkownika
2. „Poniżej”: certyfikat pośredni dla certyfikatu użytkownika
UWAGA. Zawartość pliku bundle.pem musi być koniecznie we wspomnianej wyżej kolejności.
Uzyskiwanie certyfikatu użytkownika
Certyfikat użytkownika może zostać uzyskany poprzez uruchomienie programu proCertum
CardManager, kliknięcie przycisku czytaj kartę i przejście do zakładki Profil zwykły.
Następnie należy wybrać z listy certyfikat, który chcemy zapisać i użyć przycisku „Pokaż szczegóły
certyfikatu”. Wyświetlony zostanie certyfikat, używając przycisku „Kopiuj do pliku” znajdującego się na
karcie „Szczegóły” istnieje możliwość zapisania certyfikatu:
Warto w tym kroku
zapisać sobie
zawartość pola
„Wystawca”. Pomoże
to w późniejszym
doborze certyfikatu
pośredniego.
S t r o n a | 26
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Po kliknięciu „Kopiuj do pliku” zostanie uruchomiony kreator zapisu:
Należy kliknąć „Dalej”. W kolejnym kroku należy wybrać opcję „X.509 szyfrowany algorytmem Base-64
(.CER)” i kliknąć „Dalej”:
S t r o n a | 27
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Następnie należy wybrać gdzie ma zostać zapisany plik oraz nadać mu nazwę. W tym celu należy kliknąć
„Przeglądaj”, wybrać lokalizację i wpisać nazwę pliku, następnie kliknąć „Zapisz”, a w oknie kreatora
przejść do kolejnego kroku przyciskiem „Dalej” oraz następnie „Zakończ”. Kreator potwierdzi eksport
pliku.
Uzyskiwanie certyfikatu pośredniego
Certyfikaty pośrednie należy pobierać ze strony Certum:
https://www.certum.pl/pl/wsparcie/cert_wiedza_zaswiadczenia_klucze_certum/
W doborze odpowiedniego certyfikatu (certyfikatów) pośrednich pomoże zapisana wcześniej nazwa
Wystawcy z pola „Wystawca” certyfikatu użytkownika. Należy odszukać na stronie Certum wystawcę
swojego certyfikatu i zapisać jego certyfikat w formacie tekstowym PEM.
Następnie mając dwa pliki z certyfikatami, należy utworzyć nowy plik tekstowy. Zawartość obu
uzyskanych wcześniej plików (Certyfikat użytkownika oraz certyfikat pośredni) należy wkleić do
jednego pliku tekstowego we wspomnianej wyżej kolejności:
1. „Na górze”: Certyfikat użytkownika
2. „Poniżej”: certyfikat pośredni dla certyfikatu użytkownika
Plik należy zapisać i zmienić jego rozszerzenie na *.pem.
S t r o n a | 28
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Poniżej przedstawiono przykładowy plik bundle.pem:
Certyfikat
użytkownika
Certyfikat
pośredni
S t r o n a | 29
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
7.1.3 Zmiana aliasu użytkownika (labela) na karcie (tylko dla użytkowników posiadających
znaki diakrytyczne w polu Common Name (CN) w certyfikacie) Do wskazywania certyfikatu, który ma zostać użyty do podpisu aplikacji z wykorzystaniem narzędzia
Jarsigner używany jest alias certyfikatu użytkownika. Standardowo alias certyfikatu tworzony jest na
podstawie zawartości pola Common Name z pola Podmiot z certyfikatu. Jeśli w polu Common Name
umieszczony został ciąg znaków zawierający znaki diakrytyczne, następuje konieczność zastąpienia
tego ciągu ciągiem znaków nie zawierającym znaków diakrytycznych.
Przykład: Alias (label) przed zmianą: Urząd Alias (label) po zmianie: Urzad
Uwaga! Zmiana aliasu nie powoduje zmian w certyfikacie. Edycji podlega jedynie identyfikator
certyfikatu na karcie. Podpisana aplikacja w polu podpisu nadal zawierać będzie dane Subskrybenta
zawierające znaki diakrytyczne.
Zmiany aliasu (labela) można dokonać za pomocą oprogramowania udostępnianego nieodpłatnie
PKCS11Admin (do pobrania tutaj: http://www.pkcs11admin.net/).
Prezentowany sposób zmiany labela został wykonany w oprogramowaniu PKCS11Admin w wersji
0.3.0. Procedura zmiany labela wygląda następująco:
1. Należy pobrać i wypakować program PKCS11Admin do wybranego katalogu.
2. Następnie należy wejść do katalogu zawierającego wypakowane oprogramowanie
PKCS11Admin i uruchomić aplikację Pkcs11Admin-x86 lub Pkcs11Admin-x64, zależnie od wersji
systemu operacyjnego. Uruchomienie skutkuje otwarciem programu oraz okna wyboru
biblioteki obsługującej kartę. Dla kart Certum wskazać należy bibliotekę crypto3PKCS.dll,
znajdującą się w katalogu C:\Windows\System32 i zatwierdzić przyciskiem „OK”:
S t r o n a | 30
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
3. Gdy program wczyta zawartość karty kryptograficznej należy z paska wybrać opcję „Token” >
„Login” > „User login”:
S t r o n a | 31
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
4. Program zamonituje o wpisanie kodu PIN do profilu zwykłego karty. Należy go wprowadzić i
zatwierdzić przyciskiem „OK”:
5. Następnie należy przejść do zakładki „Certificates”. Na liście wyświetlą się labele certyfikatów,
dla których zostanie wykonana zmiana (tu dla przykładu label użytkownika zawierający znak
diakrytyczny „ó”):
6. Kliknięcie prawym przyciskiem myszy na labelu powoduje wywołanie menu, z którego należy
wybrać opcję „Edit attributes…”.
S t r o n a | 32
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
7. W wyświetlonym oknie, prezentującym atrybuty wpisu, należy odnaleźć wpis CKA_LABEL.
Następnie należy zaznaczyć wpis CKA_LABEL i użyć przycisku „Edit” do zmiany błędnej
zawartości wpisu:
S t r o n a | 33
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
8. Pole labela jest teraz edytowalne. Wystarczy skorygować label usuwając znaki diakrytyczne i
potwierdzić przyciskiem „OK”:
9. Proces zmiany został ukończony. Dzięki temu przy wyborze certyfikatu do podpisu będzie
możliwość podania aliasu nie zawierającego znaków diakrytycznych i co za tym idzie poprawne
użycie certyfikatu.
Przed przystąpieniem do podpisywania rezultat zmiany aliasu użytkownika sprawdzić można
poleceniem:
W rezultacie instrukcja zwraca zawartość magazynu kluczy:
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
Enter keystore password:
Keystore type: PKCS11
Keystore provider: SunPKCS11-Crypto3CSP
Your keystore contains 1 entry
Paula Olszowka, PrivateKeyEntry,
Certificate fingerprint (SHA1):
E0:82:8D:F9:D7:1C:4C:D8:7A:34:94:60:02:7F:0D:9C:B8:02:BF:31
keytool -list -keystore NONE -storetype PKCS11 -providerclass
sun.security.pkcs11.SunPKCS11 -providerArg provider.cfg
S t r o n a | 34
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Podpisywanie Aby podpisać plik, w wierszu poleceń (cmd.exe) należy użyć następującego polecenia:
jarsigner -keystore NONE -tsa "[1]" -certchain "[2]" -storetype PKCS11 -providerClass
sun.security.pkcs11.SunPKCS11 -providerArg "[3]" -storepass "[4]" "[5]" "[6]"
[1] – Adres znacznika czasu. Dla Certum http://time.certum.pl,
[2] – Ścieżka do pliku ścieżki certyfikatu (Sekcja „Konfiguracja”),
[3] – Ścieżka do pliku konfiguracyjnego providera (Sekcja „Konfiguracja”),
[4] – Hasło do profilu zwykłego karty,
[5] – Ścieżka do pliku podpisywanego,
[6] – Nazwa właściciela certyfikatu którą sprawdzić można w proCertum CardManagerze lub używając
narzędzia keytool (więcej w rozdziale: 7.1.3.9).
Przykładowe, poprawne polecenie:
Jeśli operacja podpisu przebiegła prawidłowo, konsola wyświetli następujący wynik:
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jar signed.
jarsigner -keystore NONE -certchain "bundle.pem" -tsa "http://time.certum.pl" -
storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg
"provider.cfg" -storepass "123456" "aplikacja.jar" "Asseco Data Systems S.A."
S t r o n a | 35
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Weryfikacja Aby zweryfikować plik, w wierszu poleceń (cmd.exe) należy użyć następującego polecenia:
jarsigner -verify "[1]"
[1] – Ścieżka do pliku podpisywanego,
Przykładowe, poprawne polecenie:
W przypadku poprawnej weryfikacji pliku konsola wyświetli:
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jar verified.
W przypadku braku podpisu wynik jest następujący:
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jar is unsigned.
jarsigner -verify "aplikacja.jar"
S t r o n a | 36
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Podpisywanie wsadowe W celu wsadowego podpisania wielu plików podczas jednej sesji należy utworzyć plik *.bat,
zawierający tyle wpisów, ile plików ma zostać podpisane podczas jednego procesu podpisu. Działanie
takie eliminuje konieczność każdorazowego wywoływania komendy w konsoli oraz wpisywania kodu
PIN przy podpisie kolejnych plików.
W celu utworzenia pliku, należy utworzyć nowy plik tekstowy *.txt, wkleić wpisy do podpisywania
plików, zapisać plik oraz zmienić jego rozszerzenie z *.txt na *.bat.
Poniższy przykład prezentuje zawartość pliku *.bat dla podpisu trzech aplikacji jednocześnie:
Tak zapisany plik można uruchomić w konsoli cmd.exe lub dwuklikiem, a rezultatem będzie rozpoczęcie
podpisywania kolejnych plików, zawartych w pliku *.bat.
Rezultatem uruchomienia pliku *.bat w konsoli będzie informacja o kolejnym wywołaniu komend i
podpisie plików:
C:\Users\user\Desktop\jarsigner>jarsigner -keystore NONE -certchain
"bundle.pem" -tsa http://time.certum.pl -storetype PKCS11 -
providerClass sun.security.pkcs11.SunPKCS11 -providerArg
"provider.cfg" -storepass "123456" "aplikacja1.jar" "Asseco Data
Systems S.A"
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jar signed.
C:\Users\user\Desktop\jarsigner>jarsigner -keystore NONE -certchain
"bundle.pem" -tsa http://time.certum.pl -storetype PKCS11 -
providerClass sun.security.pkcs11.SunPKCS11 -providerArg
"provider.cfg" -storepass "123456" "aplikacja2.jar" "Asseco Data
Systems S.A"
jarsigner -keystore NONE -certchain "bundle.pem" -tsa "http://time.certum.pl" -
storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg
"provider.cfg" -storepass "123456" "aplikacja1.jar" "Asseco Data Systems S.A."
jarsigner -keystore NONE -certchain "bundle.pem" -tsa "http://time.certum.pl" -
storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg
"provider.cfg" -storepass "123456" "aplikacja2.jar" "Asseco Data Systems S.A."
jarsigner -keystore NONE -certchain "bundle.pem" -tsa "http://time.certum.pl" -
storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg
"provider.cfg" -storepass "123456" "aplikacja3.jar" "Asseco Data Systems S.A."
S t r o n a | 37
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jar signed.
C:\Users\user\Desktop\jarsigner>jarsigner -keystore NONE -certchain
"bundle.pem" -tsa http://time.certum.pl -storetype PKCS11 -
providerClass sun.security.pkcs11.SunPKCS11 -providerArg
"provider.cfg" -storepass "123456" "aplikacja3.jar" "Asseco Data
Systems S.A"
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jar signed.
S t r o n a | 38
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
8 Najczęstsze problemy:
1. Podczas podpisu narzędziem signtool przy wykorzystaniu algorytmu SHA-2 występuje problem
z podpisaniem:
Done Adding Additional Store
SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-
2146893784/0x80090028)
Rozwiązanie: W oprogramowaniu proCertum CardManager należy wybrać przycisk Opcje > zaznaczyć
opcję „EV Code Signing – zastąp CSP biblioteką minidriver”. Następnie zrestartować system i podjąć
próbę podpisu ponownie.
2. Podczas podpisu narzędziem jarsigner pojawia się komunikat:
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jar signed.
Warning:
The signer's certificate chain is not validated.
Rozwiązanie: Należy zweryfikować zawartość pliku bundle.pem. Plik zawiera prawdopodobnie
nieprawidłowe certyfikaty bądź certyfikaty w nieprawidłowej kolejności.
Plik bundle.pem powinien zawierać certyfikaty:
1. Certyfikat Subskrybenta,
2. Odpowiedni certyfikat pośredni.
Więcej o pliku bundle.pem w punkcie 7.1.2.
3. Podczas weryfikacji podpisu narzędziem jarsigner pojawia się komunikat:
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jarsigner: java.lang.SecurityException: cannot verify signature
block file META-INF/PAULA_OL
PAULA_OL to przykładowa sygnatura, zależna od aliasu użytkownika. Więcej o aliasach w
punkcie 7.1.3
S t r o n a | 39
Certum
Powszechne Centrum Certyfikacji
ul. Królowej Korony Polskiej 21, 70-486 Szczecin
certum.pl [email protected]
Rozwiązanie: Należy zweryfikować zawartość pliku bundle.pem. Plik zawiera prawdopodobnie
nieprawidłowe certyfikaty bądź certyfikaty w nieprawidłowej kolejności.
Plik bundle.pem powinien zawierać certyfikaty:
1. Certyfikat Subskrybenta,
2. Odpowiedni certyfikat pośredni.
4. Podczas podpisu narzędziem jarsigner pojawia się komunikat:
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
jar signed.
Warning:
The signer certificate's KeyUsage extension doesn't allow code
signing.
Rozwiązanie: Należy zweryfikować zawartość pliku bundle.pem. Plik prawdopodobnie nie zawiera na
pierwszej pozycji certyfikatu Subskrybenta.
Plik bundle.pem powinien zawierać certyfikaty:
1. Certyfikat Subskrybenta,
2. Odpowiedni certyfikat pośredni.
Więcej o pliku bundle.pem w punkcie 7.1.2.