Konwersja formatu klucza prywatnego i certyfikatu: Różnice pomiędzy wersjami

Z Baza Wiedzy cybo.pl
Nie podano opisu zmian
Nie podano opisu zmian
Linia 39: Linia 39:


Konwersja przykładowego zaszyfrowanego klucza prywatnego [https://pl.wikipedia.org/wiki/RSA_(kryptografia) RSA] w formacie [https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail PEM] zapisanego w pliku <tt>439d-pem.key</tt> do niezaszyfrowanego klucza prywatnego w formacie [https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail PEM] zapisanego w pliku <tt>439d-plain-pem.key</tt> możliwa jest za pomocą polecenia
Konwersja przykładowego zaszyfrowanego klucza prywatnego [https://pl.wikipedia.org/wiki/RSA_(kryptografia) RSA] w formacie [https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail PEM] zapisanego w pliku <tt>439d-pem.key</tt> do niezaszyfrowanego klucza prywatnego w formacie [https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail PEM] zapisanego w pliku <tt>439d-plain-pem.key</tt> możliwa jest za pomocą polecenia
<pre>openssl rsa -in 439d-pem.key -out 439d-plain-pem.key
<pre>openssl pkcs8 -topk8 -nocrypt -in 439d-pem.key -out 439d-plain-pem.key
</pre>
</pre>


Uwagi:
Uwagi:
* Treść klucza prywatnego powinna być znana jedynie jego właścicielowi. Przechowywanie klucza prywatnego w formacie niezaszyfrowanym pozwala na korzystanie z niego bez podawania hasła ale jest mniej bezpieczne (większe ryzyko kompromitacji tego klucza).
* Treść klucza prywatnego powinna być znana jedynie jego właścicielowi. Przechowywanie klucza prywatnego w formacie niezaszyfrowanym pozwala na korzystanie z niego bez podawania hasła ale jest mniej bezpieczne (większe ryzyko kompromitacji tego klucza).


== Z niezaszyfrowanego do zaszyfrowanego ==
== Z niezaszyfrowanego do zaszyfrowanego ==
Konwersja przykładowego niezaszyfrowanego klucza prywatnego [https://pl.wikipedia.org/wiki/RSA_(kryptografia) RSA] w formacie [https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail PEM] zapisanego w pliku <tt>439d-plain-pem.key</tt> do zaszyfrowanego algorytmem AES256 klucza prywatnego w formacie [https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail PEM] zapisanego w pliku <tt>439d-pem.key</tt> możliwa jest za pomocą polecenia
Konwersja przykładowego niezaszyfrowanego klucza prywatnego [https://pl.wikipedia.org/wiki/RSA_(kryptografia) RSA] w formacie [https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail PEM] zapisanego w pliku <tt>439d-plain-pem.key</tt> do zaszyfrowanego algorytmem AES256 klucza prywatnego w formacie [https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail PEM] zapisanego w pliku <tt>439d-pem.key</tt> możliwa jest za pomocą polecenia
<pre>openssl rsa -aes256 -in 439d-plain-pem.key -out 439d-pem.key
<pre>openssl pkcs8 -topk8 -in 439d-plain-pem.key -out 439d-pem.key
</pre>
</pre>



Wersja z 10:21, 6 lut 2024

Operator nie ponosi odpowiedzialności za obszar kliencki (m.in. sprzęt, oprogramowanie i klucze prywatne użytkowników Abonenta). Publikowane przez Operatora informacje dotyczące obszaru klienckiego mają charakter pomocniczy a Abonent może korzystać z nich na własne ryzyko.

Poniższa strona zawiera przykładowe polecenia do konwersji klucza prywatnego i certyfikatu między różnymi formatami, przy wykorzystaniu oprogramowania OpenSSL. 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

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:

  • 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.
  • 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 pliku 439d.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 pliku 439d.p12 w formacie zgodnym ze starszym oprogramowaniem (przestarzałe algorytmy kryptograficzne), wtedy do parametrów powyższego polecenia można dodać parametr -legacy

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

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

Uwagi:

  • Treść klucza prywatnego powinna być znana jedynie jego właścicielowi. Przechowywanie klucza prywatnego w formacie niezaszyfrowanym pozwala na korzystanie z niego bez podawania hasła ale jest mniej bezpieczne (większe ryzyko kompromitacji tego klucza).

Z niezaszyfrowanego do zaszyfrowanego

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

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:

  • 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
  • W przypadku korzystania przez użytkownika abonenta z OpenSSL do generowania kluczy, CSR lub konwersji certyfikatów, w celu ułatwienia użytkownikowi wykonywania tych operacji bez uruchamiania linii poleceń, administratorzy abonenta mogą rozważyć przygotowanie dostosowanych do systemu operacyjnego użytkownika, uruchamianych ikonami skryptów z predefiniowanymi parametrami dostosowanymi do tego użytkownika; np. osobnego skryptu do generowania klucza prywatnego i CSR do ustalonych plików oraz osobnego skryptu do konwersji pliku z certyfikatem w formacie PEM do pliku w formacie wymaganym przez oprogramowanie użytkownika.


Zobacz też: