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