Plik CSR (Certificate Signing Request) to kluczowy element procesu uzyskania certyfikatu SSL/TLS dla domeny. Zawiera klucz publiczny wnioskodawcy oraz dane identyfikacyjne niezbędne do weryfikacji przez urząd certyfikacji (CA) i wystawienia certyfikatu.
CSR jest plikiem w formacie Base‑64, który przesyła się do CA w celu podpisania i wydania certyfikatu, umożliwiającego szyfrowanie połączeń HTTPS.
Definicja i funkcja pliku CSR w procesie certyfikacji
CSR stanowi nieodzowny krok w pozyskaniu certyfikatu SSL niezależnie od tego, czy instalacja nastąpi na serwerze hostingu, czy na serwerze zewnętrznym. Zawiera dane, które trafią do certyfikatu: nazwa organizacji, nazwa domeny (Common Name), miasto, województwo, kraj oraz klucz publiczny.
Żądanie podpisania certyfikatu wysyła się do zaufanego CA (np. DigiCert, SSL.com, Sectigo/Comodo) w celu weryfikacji tożsamości i wydania certyfikatu.
CSR jest podpisany odpowiadającym mu kluczem prywatnym, co stanowi dowód posiadania (Proof of Possession, POP) i zapewnia integralność danych w żądaniu.
Struktura i zawartość pliku CSR
CSR jest zgodny ze standardem PKCS #10, który definiuje składnię żądań certyfikacji. Zawartość obejmuje zaszyfrowaną strukturę z danymi identyfikacyjnymi oraz kluczem publicznym, który zostanie osadzony w certyfikacie.
W CSR znajduje się Distinguished Name (DN) z polami takimi jak: Common Name (CN) – FQDN domeny, Country (C) – dwuliterowy kod ISO, State/Province (ST), Locality (L), Organization (O), Organizational Unit (OU) oraz opcjonalnie Email (E).
Standard PKCS #10 zapewnia interoperacyjność – CSR z jednego systemu może zostać poprawnie przetworzony przez różne urzędy certyfikacji.
Klucze kryptograficzne – publiczny i prywatny w procesie CSR
W trakcie generowania CSR tworzony jest również klucz prywatny, który musi pozostać pod wyłączną kontrolą właściciela. To nim podpisuje się CSR i to on służy później do zestawiania bezpiecznych połączeń TLS.
Klucz publiczny jest częścią CSR i trafia do certyfikatu SSL, dzięki czemu każdy może szyfrować dane do właściciela odpowiadającego mu klucza prywatnego.
Sugerowana minimalna długość klucza RSA to 2048 bitów (zalecane 4096 bitów). W przypadku ECDSA klucze są krótsze przy zachowaniu podobnego poziomu bezpieczeństwa (np. P‑256 ≈ RSA 2048).
Bezwzględnie chroń klucz prywatny – jego utrata kompromituje zabezpieczenia, a odtworzenie identycznego klucza nie jest możliwe.
Proces generowania CSR za pomocą OpenSSL
OpenSSL to najpopularniejsze narzędzie CLI do pracy z kluczami, CSR i certyfikatami X.509 w systemach Linux, macOS oraz Windows (np. przez WSL).
Generowanie klucza prywatnego
Aby wygenerować 2048‑bitowy klucz prywatny RSA, użyj poniższego polecenia:
openssl genrsa -out private.key 2048
Jeśli chcesz zabezpieczyć klucz hasłem (AES‑256), wykonaj:
openssl genrsa -out private.key -aes256 2048
Hasło do klucza jest niezbędne przy każdym użyciu klucza – zapamiętaj je lub przechowuj w menedżerze haseł.
Jednorazowe generowanie CSR i klucza prywatnego
Aby jednocześnie wygenerować klucz prywatny i plik CSR dla RSA 2048, użyj:
openssl req -newkey rsa:2048 -keyout PRIVATEKEY.key -out MYCSR.csr
Po uruchomieniu polecenia zostaniesz poproszony o ustawienie hasła (jeśli dotyczy) oraz o podanie danych DN.
Odpowiadanie na pytania dialogowe
Podczas generowania CSR podaj poprawne wartości pól DN zgodnie z wytycznymi CA:
- Country Name (C) – dwuliterowy kod kraju ISO wielkimi literami, np. PL;
- State or Province Name (ST) – pełna nazwa województwa (zalecane polskie znaki), np. Zachodniopomorskie;
- Locality Name (L) – pełna nazwa miasta, np. Szczecin;
- Organization Name (O) – pełna, zgodna z rejestrem nazwa firmy (np. KRS/REGON), np. HOME.PL S.A.;
- Organizational Unit Name (OU) – opcjonalnie dział, np. IT lub IT Department;
- Common Name (CN) – dokładna domena, np. www.home.pl lub *.home.pl dla Wildcard;
- Email Address (E) – opcjonalnie adres w formacie [email protected].
Nie używaj polskich znaków w polach innych niż ST; kod kraju wpisz wielkimi literami.
Generowanie CSR dla algorytmu ECDSA
Aby wygenerować parametry krzywej P‑256 dla ECDSA, wykonaj:
openssl genpkey -genparam -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out ECPARAM.pem
Następnie wygeneruj klucz i CSR, wskazując plik parametrów:
openssl req -newkey ec:ECPARAM.pem -keyout PRIVATEKEY.key -out MYCSR.csr
Możesz także połączyć oba kroki w jednym poleceniu (Bash, proces substytucji):
openssl req -newkey ec: <(openssl genpkey -genparam -algorithm ec -pkeyopt ec_paramgen_curve:P-256) -keyout PRIVATEKEY.key -out MYCSR.csr
Alternatywne metody generowania CSR
Generowanie CSR w systemie Windows IIS
W Menedżerze usług IIS możesz wygenerować CSR w kilku krokach:
- uruchom Menedżera IIS (Win+R → wpisz inetmgr → OK),
- w panelu Połączenia wybierz serwer i otwórz pozycję Certyfikaty serwera,
- w panelu Czynności kliknij Utwórz żądanie certyfikatu…,
- wypełnij Właściwości nazwy wyróżniającej (DN) zgodnie z wymaganiami CA,
- w sekcji dostawcy kryptograficznego wskaż Microsoft RSA SChannel Cryptographic Provider,
- ustaw długość klucza na co najmniej 2048 bitów i zapisz plik CSR.
Generowanie CSR w Plesku
W Plesku skorzystaj z wbudowanego kreatora:
- przejdź do wybranej domeny i otwórz sekcję SSL/TLS Certyfikaty,
- kliknij Dodaj SSL/TLS Certyfikat,
- wypełnij wymagane pola (nazwa, bity, kraj, stan/prowincja, lokalizacja, organizacja, domena itp.),
- kliknij Poproś, a następnie otwórz utworzony wpis certyfikatu i skopiuj wygenerowany CSR.
Generowanie CSR za pomocą generatorów online
Istnieją bezpłatne generatory CSR online, które tworzą jednocześnie klucz prywatny i CSR. Po wypełnieniu formularza otrzymasz oba pliki.
Skopiuj CSR do pliku .txt i bezpiecznie przechowuj klucz prywatny – nigdy go nie udostępniaj.
Generowanie CSR za pomocą cPanel
W cPanel wykonaj następujące kroki:
- zaloguj się do cPanel i przejdź do sekcji Bezpieczeństwo → SSL/TLS,
- w CSR (Certificate Signing Requests) wybierz Generate, view, or delete…,
- wypełnij formularz DN,
- kliknij Generuj i skopiuj wyświetlony CSR do przesłania w CA.
Ważne informacje przy generowaniu pliku CSR
Pamiętaj o poniższych zasadach, aby uniknąć opóźnień w wydaniu certyfikatu:
- dane w CSR muszą być dokładne i zgodne z rejestrem oraz WHOIS,
- w polach Organization (O) i Locality (L) wpisz wartości zgodne z danymi widocznymi w WHOIS dla danej domeny,
- pole Organizational Unit (OU) jest opcjonalne,
- nie używaj polskich znaków (z wyjątkiem ST – nazwy województwa),
- kod kraju (C) wpisz wielkimi literami zgodnie z ISO, np. PL.
Weryfikacja poprawności pliku CSR
Przed wysłaniem do CA warto zweryfikować CSR w narzędziu online, wklejając zawartość od „—–BEGIN CERTIFICATE REQUEST—–” do „—–END CERTIFICATE REQUEST—–”.
Aby sprawdzić szczegóły CSR lokalnie w OpenSSL, użyj:
openssl req -noout -text -in MYCSR.csr
Aby zweryfikować podpis w CSR, wykonaj:
openssl req -noout -verify -in MYCSR.csr
Proces przesyłania CSR do urzędu certyfikacji
Po wygenerowaniu i sprawdzeniu CSR prześlij go do wybranego CA poprzez panel klienta lub formularz zamówienia. Zawartość CSR wkleja się zazwyczaj w dedykowane pole formularza.
CA użyje danych z CSR do przygotowania certyfikatu SSL/TLS dla Twojej domeny.
Procedura wydawania certyfikatu SSL
W zależności od typu certyfikatu zakres weryfikacji i czas wydania różnią się. Poniżej zestawienie najważniejszych różnic:
| Typ certyfikatu | Zakres weryfikacji | Metoda potwierdzenia | Przybliżony czas wydania |
|---|---|---|---|
| DV (Domain Validation) | weryfikacja wyłącznie prawa do domeny | e‑mail do admin@domena, DNS lub plik HTTP | od kilku minut do 24 h |
| OV (Organization Validation) | weryfikacja domeny i danych firmy | dokumenty rejestrowe, weryfikacja telefoniczna | kilka godzin do kilku dni |
| EV (Extended Validation) | rozszerzona weryfikacja podmiotu | szczegółowa kontrola prawna i operacyjna | zwykle kilka dni |
DV jest najszybszy, natomiast OV i EV zapewniają wyższy poziom zaufania dzięki weryfikacji organizacji.
Instalacja i zastosowanie certyfikatu SSL
Po wydaniu certyfikatu przez CA należy zainstalować go na serwerze. W wielu panelach hostingowych instalacja odbywa się automatycznie po kliknięciu odpowiedniej akcji w panelu klienta.
Jeśli serwer jest zewnętrzny, pobierz pakiet certyfikatu z panelu dostawcy i zainstaluj go ręcznie na serwerze docelowym zgodnie z dokumentacją.
Certyfikaty specjalne – wildcard i wielodomenowe
Certyfikaty wildcard
Certyfikat Wildcard (*.domena.pl) chroni nieograniczoną liczbę subdomen w obrębie tej domeny. Przykład: *.mojadomena.pl zabezpieczy www.mojadomena.pl, sklep.mojadomena.pl, api.mojadomena.pl i samą mojadomena.pl.
Generując CSR dla Wildcard, w polu CN wpisz *.domena.pl.
Certyfikaty wielodomenowe (UCC/SAN)
Certyfikaty SAN/UCC pozwalają zabezpieczyć wiele domen jednym certyfikatem poprzez wpisanie wszystkich nazw w polu Subject Alternative Name.
Tworząc CSR dla SAN, uwzględnij wszystkie domeny, a w razie potrzeby połącz funkcjonalność SAN z Wildcard, aby chronić wiele domen i ich subdomen jednocześnie.
Zaawansowane aspekty CSR i certyfikacji
Konwersja certyfikatów między formatami
Aby skonwertować certyfikat z DER (.der/.cer) do PEM (.pem), użyj:
openssl x509 -inform der -in certificatename.der -out certificatename.pem
Aby wyodrębnić PEM z kontenera PFX (.pfx/.p12), wykonaj:
openssl pkcs12 -in certificatename.pfx -out certificatename.pem
Regenerowanie CSR na podstawie istniejącego certyfikatu
Gdy potrzebujesz nowego CSR z istniejącego certyfikatu i klucza prywatnego, użyj polecenia:
openssl x509 -x509toreq -in mojadomena.pem -out mojadomena.csr -signkey mojadomena.key