Aby wygenerować żądanie podpisania certyfikatu (CSR) w OpenSSL na Linuksie, wykonaj poniższe, szczegółowe kroki. Instrukcja obejmuje wszystkie istotne etapy, wyjaśnienia i dobre praktyki.
1. Wstęp
CSR (Certificate Signing Request) to plik z żądaniem wydania certyfikatu, generowany na podstawie klucza prywatnego. Przekazuje się go do urzędu certyfikacji (CA), który wystawia certyfikat na jego podstawie.
2. Instalacja OpenSSL
Na większości dystrybucji Linuksa OpenSSL jest już zainstalowany. Jeśli nie, zainstaluj go:
- Debian/Ubuntu –
sudo apt update sudo apt install openssl
- CentOS/Fedora/RHEL –
sudo dnf install openssl
Sprawdź wersję:
openssl version
3. Generowanie klucza prywatnego
Klucz prywatny jest absolutnie niezbędny — nigdy nie udostępniaj tego pliku osobom trzecim.
Nagłówek polecenia:
openssl genrsa -out private.key 2048
- private.key — nazwa pliku z kluczem,
- 2048 — długość klucza w bitach (zalecane minimum: 2048, powszechny jest też 3072 lub 4096).
Jeśli chcesz zabezpieczyć klucz hasłem, użyj:
openssl genpkey -algorithm RSA -aes256 -out private.key -pkeyopt rsa_keygen_bits:2048
Będziesz musiał podać hasło każdorazowo przy użyciu klucza.
4. Generowanie żądania CSR
Do wygenerowania CSR użyj klucza prywatnego:
openssl req -new -key private.key -out request.csr
- private.key — wcześniej utworzony klucz prywatny,
- request.csr — plik wynikowy z żądaniem podpisania certyfikatu (CSR).
Podczas wykonywania polecenia zostaniesz poproszony o podanie danych do certyfikatu.
Przykładowe pytania i wyjaśnienia:
Pole | Opis | Przykład |
---|---|---|
Country Name (C) | Dwuliterowy kod kraju (ISO 3166) | PL |
State or Province (ST) | Województwo lub stan | Mazowieckie |
Locality (L) | Miasto | Warszawa |
Organization (O) | Nazwa organizacji | Moja Firma Sp. z o.o. |
Organizational Unit (OU) | Dział, np. IT | IT |
Common Name (CN) | Najważniejsze! Nazwa domeny, dla której będzie certyfikat | www.mojadomena.pl |
Email Address | E-mail administratora certyfikatu | [email protected] |
- Common Name (CN) — musi być dokładnie zgodny z nazwą domeny, której dotyczy certyfikat (dla SSL/TLS – adres strony).
Możesz pozostawić niewymagane pola puste (wystarczy wcisnąć Enter).
5. Weryfikacja utworzonych plików
Sprawdź poprawność klucza prywatnego:
openssl rsa -in private.key -check
Sprawdź treść wygenerowanego CSR:
openssl req -in request.csr -noout -text
Możesz także otworzyć request.csr w edytorze tekstu (np. nano
, vim
, cat
), aby skopiować go i przekazać do urzędu certyfikacji (CA).
CSR ma budowę:
-----BEGIN CERTIFICATE REQUEST----- MII... -----END CERTIFICATE REQUEST-----
6. Uwagi dotyczące bezpieczeństwa
- Klucz prywatny nigdy nie opuszcza serwera/systemu, na którym został wygenerowany!
- Przechowuj go w bezpiecznym miejscu i wykonaj kopię zapasową.
- Treść request.csr możesz udostępnić CA — nie zawiera ona informacji pozwalających na odtworzenie klucza prywatnego.
7. Przykładowy szybki scenariusz (jedna linia)
Możesz wygenerować klucz prywatny i żądanie CSR jednocześnie (zalecane przy braku wymagań personalizowanych pól):
openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out request.csr
- -nodes — wygeneruje klucz bez hasła (opcjonalnie).
8. Przekazanie CSR do CA
Zawartość pliku request.csr
prześlij do wybranej firmy certyfikacyjnej (CA). CA zweryfikuje dane i wystawi właściwy certyfikat.
Najważniejsze – Do generowania CSR zawsze potrzebny jest klucz prywatny. Pliki private.key i request.csr przechowuj z dala od osób nieupoważnionych.