Dekoder CSR

Zanim urząd certyfikacji podpisze certyfikat TLS, przekazujesz mu żądanie podpisania certyfikatu (CSR), blok base64 zawierający podmiot, który ma znaleźć się na certyfikacie, oraz twój klucz publiczny, a także podpis potwierdzający, że posiadasz pasujący klucz prywatny. Ten dekoder przyjmuje CSR zakodowane w PEM i pokazuje pola podmiotu oraz parametry klucza publicznego, dzięki czemu możesz sprawdzić nazwę pospolitą, organizację i rozmiar klucza przed przekazaniem żądania urzędowi.

Jak zdekodować CSR

  1. 1

    Wklej CSR

    Dołącz znaczniki `-----BEGIN CERTIFICATE REQUEST-----` i `-----END CERTIFICATE REQUEST-----`. Białe znaki są tolerowane.

  2. 2

    Uruchom dekoder

    Żądanie zostaje przeanalizowane i odczytywane są pola podmiotu oraz klucz publiczny.

  3. 3

    Sprawdź wynik

    Zweryfikuj pola podmiotu, takie jak nazwa pospolita i organizacja, oraz algorytm i rozmiar klucza.

  4. 4

    Zadziałaj zgodnie z wynikiem

    Jeśli podmiot lub klucz wyglądają źle, wygeneruj CSR ponownie przed przekazaniem go urzędowi.

Co pokazuje dekoder

CSR to struktura ASN.1 (PKCS #10). Dekoder odczytuje z niej dwie rzeczy:

  • Podmiot: żądane pola Nazwy Wyróżniającej, zwykle kraj (C), organizacja (O), jednostka organizacyjna (OU), miejscowość (L), stan (ST) i nazwa pospolita (CN).
  • Klucz publiczny: algorytm (RSA, EC, DSA) i rozmiar klucza w bitach.

Podpis zawarty w CSR to dowód dla urzędu, że składający posiada pasujący klucz prywatny. Ten dekoder go nie wyświetla; urząd weryfikuje go podczas przetwarzania żądania.

Przykładowy wynik

W przypadku typowego żądania certyfikatu domeny wynik wygląda tak:

Subject: commonName=www.example.com, organizationName=Example Inc., countryName=US
Key bits: 2048
Key type: RSA

Dokładne nazwy atrybutów podmiotu zależą od sposobu wygenerowania żądania.

Pola do podwójnego sprawdzenia

  • Nazwa pospolita (CN): powinna być podstawową nazwą hosta. Nowoczesne przeglądarki ignorują CN i patrzą tylko na SAN-y, ale wiele urzędów nadal wymaga poprawnego CN.
  • Alternatywne nazwy podmiotu (SAN-y): wymień każdą nazwę hosta i symbol wieloznaczny, które certyfikat zabezpieczy. Przeglądarki dopasowują do SAN-ów, nie do CN.
  • Kraj (C): 2-literowy kod ISO (US, GB, DE), a nie pełna nazwa. Urzędy odrzucają błędne kody.
  • Rozmiar klucza: RSA 2048 to dolna granica; 3072 lub 4096 dla wyższego bezpieczeństwa. ECDSA P-256 to dobra nowoczesna alternatywa i daje mniejszy certyfikat.
  • Algorytm podpisu: SHA-256 lub lepszy. SHA-1 jest dawno wycofany i zostanie odrzucony.

O alternatywnych nazwach podmiotu (SAN)

Dekoder pokazuje podmiot żądania, ale nie rozszerzenie SAN. Przeglądarki dopasowują certyfikaty do SAN-ów, a nie do CN; jeśli certyfikat ma obejmować dodatkowe nazwy hostów, uwzględnij je podczas generowania żądania, na przykład:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Gdy dekoder nie może przetworzyć CSR

Najczęstsze przyczyny to ucięty lub uszkodzony blok PEM:

  • Ucięty tekst: wklej ponownie pełny blok wraz z oboma znacznikami.
  • Wstawione podziały linii: wklej blok dokładnie tak, jak został wygenerowany.
  • Błędna treść: klucz publiczny, certyfikat lub klucz prywatny wklejone przez pomyłkę nie zostaną przetworzone jako CSR.

Generowanie pasującego klucza

CSR jest zawsze generowany wraz z kluczem prywatnym. Typowe polecenie:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr

Albo dla ECDSA:

openssl req -new -newkey ec:<(openssl ecparam -name prime256v1) -nodes -keyout example.key -out example.csr

Strzeż klucza prywatnego, jeśli wycieknie, certyfikat trzeba unieważnić.

Najczęściej zadawane pytania

CSR zawiera tylko informacje publiczne (klucz publiczny, podmiot, SAN-y) oraz podpis, więc bezpiecznie jest je udostępnić urzędowi lub wkleić do dekodera. Tajny musi pozostać pasujący klucz prywatny.

Nie. Ten dekoder oczekuje tekstowej formy PEM ze znacznikami BEGIN/END CERTIFICATE REQUEST. Aby użyć binarnego żądania DER, najpierw przekonwertuj je na PEM, na przykład poleceniem openssl req -in request.der -inform DER -out request.pem.

Nie. Większość publicznych urzędów (Let’s Encrypt, DigiCert, Sectigo) wymaga tylko CN i SAN-ów, ignorując O, OU, L, ST, C w certyfikatach weryfikowanych domeną. Certyfikaty weryfikowane organizacją i z rozszerzoną weryfikacją sprawdzają te pola osobno.

Najczęściej dlatego, że wklejony tekst został ucięty lub wstawiono w nim podziały linii, albo zamiast CSR wklejono klucz lub certyfikat. Wklej ponownie pełny blok między dwoma znacznikami.

Powiązane narzędzia