Konwersja formatu klucza prywatnego i certyfikatu
Na stronie tej znajdują się opisy przykładowych sposobów konwersji klucza prywatnego i certyfikatu między różnymi formatami. Konwersja może być potrzebna w celu dostosowania formatu do indywidualnych wymagań określonego oprogramowania klienckiego.
Konwersja klucza prywatnego i certyfikatu
Z PEM do PKCS #12
Archiwum PKCS #12 służy do importowania klucza prywatnego i certyfikatu np. do programów Firefox, Chrome, Thunderbird oraz do systemów Android i Windows. Plik-archiwum PKCS #12 posiada standardowo rozszerzenie .p12
lub .pfx
.
Za pomocą OpenSSL
Konwersja przykładowego klucza prywatnego w formacie PEM zapisanego w pliku 439d.key
oraz certyfikatu w formacie PEM zapisanego w pliku 439d.crt
do archiwum PKCS #12 zapisanego w pliku 439d.p12
z nadaniem przykładowej przyjaznej nazwy 439d@demo.cybo.pl
możliwa jest za pomocą polecenia
openssl pkcs12 -export -inkey 439d.key -in 439d.crt -out 439d.p12 -name "439d@demo.cybo.pl"
Uwagi:
- W przypadku jeśli klucz prywatny w pliku
439d.key
jest zaszyfrowany, po uruchomieniu powyższego polecenia konieczne będzie podanie hasła do niego. - Przed zakończeniem generowania archiwum
439d.p12
program zapyta dwukrotnie o hasło, które będzie użyte do zaszyfrowania tego archiwum. Hasło to będzie potrzebne np. przy imporcie archiwum do programów lub eksporcie plików z tego archiwum jak niżej. - Przyjazna nazwa zapisana w archiwum PKCS #12 (
439d@demo.cybo.pl
w powyższym przykładzie) jest pokazywana w niektórych programach przy certyfikacie zaimportowanym do nich z takiego archiwum. - W przypadku korzystania z openssl w wersji 3 lub nowszej (wersję openssl można sprawdzić za pomocą polecenia
openssl version
), w pliku439d.p12
użyte zostaną nowsze (bezpieczniejsze) algorytmy kryptograficzne niż w przypadku gdy do generowania używana jest starsza wersja openssl. Nowsze algorytmy kryptograficzne mogą jednak nie być obsługiwane przez starsze oprogramowanie (częsty objaw to odrzucanie hasła do takiego pliku). Zalecane jest używanie aktualnych wersji oprogramowania (zarówno openssl jak i oprogramowania klienckiego), które będą obsługiwać nowsze algorytmy kryptograficzne. W przypadku jeśli jednak niezbędne będzie utworzenie w openssl w wersji 3 lub nowszej pliku439d.p12
w formacie zgodnym ze starszym oprogramowaniem (przestarzałe algorytmy kryptograficzne), wtedy do parametrów powyższego polecenia można dodać parametr-legacy
Za pomocą WCT
W celu konwersji do archiwum PKCS #12 klucza prywatnego RSA PKCS #8 zapisanego w formacie PEM (klucze takie generowane są np. w przykładach generowania CSR) oraz pasującego do tego klucza certyfikatu w formacie PEM, wystawionego dla użytkownika z ID 439d
w serwisie korzystającym z domeny certyfikatów demo.cybo.pl
należy:
- w przeglądarce WWW otworzyć stronę aplikacji WCT,
- w polu ID właściciela podać wartość z pola CN (ang. common name) tematu (ang. subject) certyfikatu, tj.
439d@demo.cybo.pl
(o ile nie jest ona tam już wprowadzona), - w polu Hasło podać hasło do odszyfrowania klucza jeśli jest on zaszyfrowany w pliku,
- wcisnąć przycisk Załaduj istniejący klucz z pliku, wybrać i załadować plik z kluczem,
- wcisnąć przycisk Załaduj certyfikat z pliku, wybrać i załadować plik z certyfikatem,
- w polu Hasło podać hasło, które zostanie użyte do zaszyfrowania klucza prywatnego i certyfikatu w wynikowym archiwum PKCS #12,
- wcisnąć przycisk Pobierz plik PKCS #12 z kluczem i certyfikatem i zapisać plik z archiwum PKCS #12,
- zamknąć stronę aplikacji WCT w przeglądarce WWW.
Uwagi:
- Archiwa PKCS #12 generowane za pomocą WCT używają nowszych algorytmów kryptograficznych (podobnie jak archiwa tego typu tworzone przez oprogramowanie OpenSSL 3.0. Nowsze algorytmy kryptograficzne mogą jednak nie być obsługiwane przez starsze oprogramowanie (częsty objaw to odrzucanie hasła do takiego pliku). Zalecane jest używanie aktualnych wersji oprogramowania, które będą obsługiwać nowsze algorytmy kryptograficzne. W przypadku jeśli jednak niezbędne będzie utworzenie archiwum PKCS #12 w formacie zgodnym ze starszym oprogramowaniem (przestarzałe algorytmy kryptograficzne), wtedy można do tego celu użyć polecenia
openssl
jak wyżej.
Z PKCS #12 do PEM
Klucz prywatny
Eksport klucza prywatnego z archiwum PKCS #12 zapisanego w pliku 439d.p12
do pliku 439d.key
w formacie PEM możliwy jest za pomocą polecenia
openssl pkcs12 -in 439d.p12 -nocerts -out 439d.key
Uwagi:
- Przy eksporcie program zapyta o hasło do archiwum oraz dwukrotnie o hasło, którym zaszyfrowany zostanie wyeksportowany klucz.
Certyfikat
Eksport certyfikatu użytkownika z archiwum PKCS #12 zapisanego w pliku 439d.p12
do pliku 439d.crt
w formacie PEM możliwy jest za pomocą polecenia
openssl pkcs12 -in 439d.p12 -clcerts -nokeys -out 439d.crt
Konwersja klucza prywatnego
Z zaszyfrowanego do niezaszyfrowanego
Za pomocą OpenSSL
Konwersja przykładowego zaszyfrowanego klucza prywatnego RSA w formacie PEM zapisanego w pliku 439d-pem.key
do niezaszyfrowanego klucza prywatnego w formacie PEM zapisanego w pliku 439d-plain-pem.key
możliwa jest za pomocą polecenia
openssl pkcs8 -topk8 -nocrypt -in 439d-pem.key -out 439d-plain-pem.key
Za pomocą WCT
W celu konwersji za pomocą aplikacji WCT zaszyfrowanego klucza prywatnego RSA PKCS #8 zapisanego w pliku w formacie PEM (klucze takie generowane są np. w przykładach generowania CSR) do niezaszyfrowanego klucza prywatnego w formacie PEM właściciel tego klucza może:
- w przeglądarce WWW otworzyć stronę aplikacji WCT,
- w polu ID właściciela podać swój identyfikator np.
439d@demo.cybo.pl
, - w polu Hasło podać hasło do odszyfrowania klucza,
- wcisnąć przycisk Załaduj istniejący klucz z pliku, wybrać i załadować plik z zaszyfrowanym kluczem,
- usunąć treść z pola Hasło i pozostawić to pole puste,
- wcisnąć przycisk Pobierz klucz, zaakceptować pobieranie niezaszyfrowanego klucza i zapisać plik z niezaszyfrowanym kluczem,
- zamknąć stronę aplikacji WCT w przeglądarce WWW.
Z niezaszyfrowanego do zaszyfrowanego
Za pomocą OpenSSL
Konwersja przykładowego niezaszyfrowanego klucza prywatnego RSA w formacie PEM zapisanego w pliku 439d-plain-pem.key
do zaszyfrowanego algorytmem AES256 klucza prywatnego w formacie PEM zapisanego w pliku 439d-pem.key
możliwa jest za pomocą polecenia
openssl pkcs8 -topk8 -in 439d-plain-pem.key -out 439d-pem.key
Za pomocą WCT
W celu konwersji za pomocą aplikacji WCT niezaszyfrowanego klucza prywatnego RSA PKCS #8 zapisanego w pliku w formacie PEM (klucze takie generowane są np. w przykładach generowania CSR) do zaszyfrowanego klucza prywatnego w formacie PEM właściciel tego klucza może:
- w przeglądarce WWW otworzyć stronę aplikacji WCT,
- w polu ID właściciela podać swój identyfikator np.
439d@demo.cybo.pl
, - wcisnąć przycisk Załaduj istniejący klucz z pliku, wybrać i załadować plik z niezaszyfrowanym kluczem,
- w polu Hasło podać hasło do zaszyfrowania klucza,
- wcisnąć przycisk Pobierz klucz i zapisać plik z zaszyfrowanym kluczem,
- zamknąć stronę aplikacji WCT w przeglądarce WWW.
Konwersja certyfikatu
Z PEM do DER
Konwersja przykładowego certyfikatu w formacie PEM zapisanego w pliku 439d-pem.crt
do certyfikatu w formacie DER zapisanego w pliku 439d-der.crt
możliwa jest za pomocą polecenia
openssl x509 -outform der -in 439d-pem.crt -out 439d-der.crt
Z DER do PEM
Konwersja przykładowego certyfikatu w formacie DER zapisanego w pliku 439d-der.crt
do certyfikatu w formacie PEM zapisanego w pliku 439d-pem.crt
możliwa jest za pomocą polecenia
openssl x509 -inform der -in 439d-der.crt -out 439d-pem.crt
Z PKCS #7/DER do PEM
Konwersja przykładowego certyfikatu w formacie PKCS #7/DER zapisanego w pliku 439d-der.p7b
do certyfikatu w formacie PEM zapisanego w pliku 439d-pem.crt
możliwa jest za pomocą polecenia
openssl pkcs7 -print_certs -inform der -in 439d-der.p7b -out 439d-pem.crt
Z PKCS #7/PEM do PEM
Konwersja przykładowego certyfikatu w formacie PKCS #7/PEM zapisanego w pliku 439d-pem.p7b
do certyfikatu w formacie PEM zapisanego w pliku 439d-pem.crt
możliwa jest za pomocą polecenia
openssl pkcs7 -print_certs -in 439d-pem.p7b -out 439d-pem.crt
Z PKCS #7/DER do PKCS #7/PEM
Konwersja przykładowego certyfikatu w formacie PKCS #7/DER zapisanego w pliku 439d-der.p7b
do certyfikatu w formacie PKCS #7/PEM zapisanego w pliku 439d-pem.p7b
możliwa jest za pomocą polecenia
openssl pkcs7 -inform der -in 439d-der.p7b -out 439d-pem.p7b
Uwagi:
- Ze względów bezpieczeństwa hasła stosowane do szyfrowania kluczy prywatnych powinny być możliwie trudne do złamania a kopie plików zawierających klucze prywatne powinny być bezpiecznie usuwane gdy nie będą już potrzebne. Przykład polecenia do wygenerowania losowego, 256-bitowego hasła:
openssl rand -base64 32
Zobacz też: