Generowanie CSR-a i klucza prywatnego dla certyfikatów S/MIME
30.12.2023
Przed wystawieniem certyfikatu S/MIME
W celu wygenerowania CSR-a i klucza prywatnego będzie potrzebny OpenSSL, króry jest dostępny w każdym systemie macOS i Linux.
Utwórz katalog, w którym będzie znajdował się wygenerowany klucz prywatny oraz CSR, np.:
mkdir certyfikat-smime
Przejdź do nowo utworzonego katalogu
cd certyfikat-smime
Na początek należy wygenerować nowy klucz prywatny
openssl genrsa -out smime.key 2048
Następnie na postawie wygenerowanego klucza prywatnego generujemy nowy CSR
openssl req -new -key smime.key -out smime.csr
W tym kroku najważniejsze pola to Common Name
oraz Email Address
. W obu polach podaj ten sam swój adres e-mail, dla którego będzie używany certyfikat S/MIME. Pozostałe pola możesz pozostawić puste (domyślne) potwierdzając je przyciskiem Enter ⏎.
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []: twoj@adres.email
Email Address []: twoj@adres.email
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Zawartość otrzymanego pliku CSR wklej do formularza zamówieniowego w celu zakupu certyfikatu S/MIME. Aby wyświetlić zawartość CSR-a, użyj polecenia cat
.
cat smime.csr
Przykład CSR-a (nie używaj go)
-----BEGIN CERTIFICATE REQUEST-----
MIICizCzAXMCAQAwRjEdmBsGCSqGSIb3DQEmARYOY5JjMUBnbWFpbC5jb20xGDAW
BgNVBA4xdfhdfml1c3og7HJvZ29zejELMAkGA554677CUEwwggEiMA0GCSqGSIb3
28MbWfCkh6QuldsfgOEzXc5zkKhjhkHVEM574fPokgy76w==
-----END CERTIFICATE REQUEST-----
Po wystawieniu certyfikatu S/MIME
Po otrzymaniu nowego certyfikatu S/MIME należy go przekonwertować do formatu, który będzie możliwy do zaimportowania w klientach poczty. W przesłanym od nas e-mailu otrzymasz plik w formacie P7B (#PKCS7). Nazwa pliku będzie zbliżona do certyfikat_smime_twoj-adres-email.p7b
i taką nazwą będziemy się posługiwać w poniższym przykładzie.
Konwersja składa się z dwóch kroków:
- W pierwszy kroku należy przekonwertować certyfikat z formatu P7B do formatu PEM. Po konwersji otrzymamy plik
smime.pem
.
openssl pkcs7 -print_certs -in certyfikat_smime_twoj-adres-email.p7b -out smime.pem
smime.key
. W wyniku otrzymasz plik o nazwie certyfikat_smime.pfx
, który będzie możliwy do zaimportowania do klienta poczty (np. Thunderbird). Format PFX (inaczej #PKCS12) jest kontenerem, który zawiera w jednym pliku klucz prywatny, właściwy certyfikat S/MIME oraz certyfikat pośredni wystawcy. Podczas
konwersji zostanie wyświetlony monit o nadanie nowego hasła zabezpieczającego plik PFX. Gdy będziesz importował plik PFX do klienta poczowego będziesz musiał podać te hasło w celu odblokowania dostępu.
openssl pkcs12 -export -in smime.pem -inkey smime.key -out certyfikat_smime.pfx