CSR do certyfikatu SSL: co to jest i jak go wygenerować
CSR, czyli Certificate Signing Request, to żądanie podpisania certyfikatu SSL/TLS. Zawiera klucz publiczny i dane potrzebne do wydania certyfikatu. Możesz utworzyć je w panelu hostingu, przez OpenSSL na serwerze albo w przeglądarce. Wybierz sposób, przy którym zachowasz pasujący klucz prywatny i zainstalujesz certyfikat w odpowiedniej usłudze.
CSR, klucz prywatny i certyfikat: trzy osobne pliki
| Plik | Zawartość | Gdzie go przekazać |
|---|---|---|
| CSR, zwykle .csr | Klucz publiczny, nazwy i żądane dane podmiotu | Do urzędu certyfikacji lub formularza zamówienia certyfikatu. |
| Klucz prywatny, zwykle .key | Tajna część pary kluczy | Zachowaj pod swoją kontrolą; prześlij do docelowej usługi bezpiecznym kanałem. |
| Certyfikat, zwykle .crt lub .pem | Klucz publiczny i nazwy podpisane przez urząd certyfikacji | Zainstaluj z pasującym kluczem prywatnym i certyfikatami pośrednimi. |
Samo rozszerzenie pliku nie potwierdza jego zawartości. CSR w formacie PEM zaczyna się od BEGIN CERTIFICATE REQUEST, a klucz prywatny zawiera PRIVATE KEY. Klucz publiczny z CSR jest powiązany z konkretnym kluczem prywatnym. Urząd sprawdza żądanie i kontrolę nad nazwami; utworzenie CSR nie potwierdza tych praw.
Generowanie CSR w panelu hostingu lub IIS
- Otwórz sekcję certyfikatów SSL/TLS właściwej strony i znajdź tworzenie żądania CSR. Jeśli certyfikatem zarządza już automatyzacja, najpierw ustal, czy potrzebujesz ręcznego żądania.
- Podaj domenę i dodatkowe nazwy, jeśli panel na to pozwala. Przy certyfikacie z weryfikacją organizacji wpisz jej dane zgodnie z wymaganiami wybranego urzędu, nie przypadkowe wartości.
- Utwórz i zapisz CSR. Klucz zwykle zostaje w panelu lub magazynie serwera: potwierdź to przed wysłaniem żądania. Zakończ instalację tam, gdzie dostępny jest właśnie ten klucz.
W Plesk zacznij od sekcji domeny SSL/TLS Certificates. Kroki i ograniczenia opisuje instrukcja Plesk. Nie każdy panel obsługuje żądania z wieloma nazwami SAN, dlatego sprawdź gotowy CSR.
W Windows/IIS wybierz węzeł serwera i Server Certificates → Create Certificate Request. To ścieżka w IIS, nie polecenie Linux; klucz pozostaje w magazynie Windows. Przykład opisano w dokumentacji AWS dla IIS. Nie wybieraj Create Self-Signed Certificate, gdy potrzebujesz żądania do publicznego urzędu.
Generowanie CSR przez OpenSSL z nazwami SAN
Przykład wymaga powłoki Linux i OpenSSL 3.x. Pracuj w nowym, pustym katalogu z ograniczonym dostępem. Zastąp example.com i www.example.com swoimi nazwami. Upewnij się, że pliki o tych nazwach jeszcze nie istnieją: polecenie zapisuje nowy klucz i żądanie.
umask 077
openssl req -new -newkey rsa:2048 -sha256 -noenc \
-keyout example.com.key -out example.com.csr \
-subj "/CN=example.com" \
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"
CN określa nazwę główną, a SAN wymienia potrzebne nazwy DNS. Opcja -noenc zapisuje klucz bez szyfrowania hasłem, żeby usługa mogła uruchamiać się bez jego ręcznego podawania. umask 077 ogranicza dostęp do nowych plików do ich właściciela. Nie trzymaj klucza w publicznym katalogu strony. Aby zaszyfrować klucz hasłem, pomiń -noenc i zaplanuj sposób uruchamiania usługi. Opcje opisano w dokumentacji openssl req.
Jak wygenerować CSR online i zachować klucz u siebie
- Otwórz generator CSR online przez HTTPS na urządzeniu, któremu ufasz. Wpisz domenę, rozwiń dodatkowe adresy i sprawdź, czy potrzebujesz www lub domeny głównej razem z Wildcard.
- Wybierz typ klucza obsługiwany przez serwer i urząd certyfikacji. Generator oferuje RSA 2048, RSA 4096 i ECDSA P-256. W razie potrzeby podaj dane organizacji, a potem utwórz żądanie.
- Pobierz oba wyniki. Wyślij CSR, a klucz prywatny zachowaj osobno w chronionym miejscu. W Host4Biz klucz powstaje w Twojej przeglądarce i nie trafia na nasz serwer; nie mamy kopii do odzyskania.
Jeśli zasady Twojej organizacji wymagają tworzenia kluczy na serwerze lub w specjalnym urządzeniu, zastosuj tę procedurę. Generowanie w przeglądarce nadal wymaga zaufania do urządzenia i wczytanej strony.
Jak sprawdzić CSR przed wysłaniem
W tym samym narzędziu wybierz sprawdzenie gotowego CSR i wklej całe żądanie. Zweryfikuj SAN, typ i długość klucza, dane organizacji oraz wynik sprawdzenia podpisu. Dla pliku na serwerze uruchom:
openssl req -in example.com.csr -noout -text -verify
Polecenie pokazuje zawartość żądania i sprawdza jego własny podpis. Nie potwierdza kontroli nad domeną ani tego, że urząd wyda certyfikat. Aby sprawdzić zgodność pliku klucza prywatnego, porównaj odciski SHA-256 obu kluczy publicznych:
openssl pkey -in example.com.key -pubout -outform DER | openssl dgst -sha256
openssl req -in example.com.csr -pubkey -noout | openssl pkey -pubin -outform DER | openssl dgst -sha256
Skróty powinny być takie same. Polecenia pokazują odciski klucza publicznego, nie sam klucz prywatny, i działają dla RSA oraz EC. Z samego starego certyfikatu nie utworzysz nowej użytecznej pary: do żądania potrzebujesz pasującego klucza prywatnego albo nowej pary.
Co zachować do instalacji certyfikatu
Zachowaj CSR, pasujący klucz prywatny i listę zamówionych nazw. Przygotuj chronioną kopię klucza, ogranicz dostęp i przekazuj go tylko tam, gdzie będzie działać TLS. Nie wysyłaj go mailem, w formularzu zamówienia ani w zgłoszeniu do pomocy technicznej. Utrata klucza wymaga nowej pary, nowego CSR i ponownego wydania certyfikatu.
Gotowy CSR wykorzystasz przy zamówieniu odpowiedniego certyfikatu SSL. Po wydaniu zainstaluj go z kluczem i łańcuchem, a potem sprawdź każdą nazwę strony lub usługi pocztowej. Sam zapisany CSR nie włącza HTTPS.