Generator CSR

Utwórz żądanie podpisania certyfikatu i pasujący do niego klucz prywatny, tutaj, na tej stronie. Parę kluczy tworzy Web Crypto twojej przeglądarki i nigdy nie opuszcza ona twojego komputera: nic, co wpiszesz, ani żaden klucz nie trafia na nasz serwer ani na żaden inny.

RSA 2048/3072/4096 · ECDSA P-256/P-384/P-521 · Ed25519 · tworzone przez Web Crypto w przeglądarce, nigdy nie wysyłane
Typ klucza

Rozsądny wybór domyślny: tak samo mocny jak RSA 3072, a znacznie mniejszy.

Dla kogo jest certyfikatOpcjonalne w większości certyfikatów

Pełna nazwa prawna twojej organizacji, taka jak w rejestrze.

Wpisz pełną nazwę zamiast skrótu.

Dwie litery, kod ISO 3166-1.

O co poprosićPubliczny urząd certyfikacji ustawia te pola według własnego profilu. Prywatny może chcieć, żebyś o nie poprosił.
Użycie klucza
Rozszerzone użycie klucza

Tylko jeśli twój urząd certyfikacji o nie poprosił. Używa go rejestracja SCEP; zamówienie certyfikatu WWW nie.

Parę kluczy tworzy twoja przeglądarka i nigdzie jej nie wysyła.

Wyślij toŻądanie podpisania certyfikatuPowstanie w tej przeglądarce po naciśnięciu przycisku
Zachowaj toKlucz prywatnyPowstanie w tej przeglądarce po naciśnięciu przycisku

Co zaraz wyśleszECDSA P-256 · SHA-256

ECDSA P-256Powstanie w tej przeglądarce po naciśnięciu przycisku
Co urząd certyfikacji zrobi z tym żądaniem

Wpisz nazwę albo wypróbuj przykład, a ta kolumna pokaże, co zrobiłby z żądaniem urząd certyfikacji, zanim je utworzysz.

Parę kluczy tworzy Web Crypto twojej przeglądarki, w ramce, która nie może się nigdzie połączyć, i nigdy jej nie wysyła. Otwórz panel sieci i patrz.

Czym jest generator CSR?

Tworzy dwa pliki: żądanie podpisania certyfikatu, które wysyłasz do urzędu certyfikacji, i klucz prywatny, który zostaje u ciebie. Żądanie niesie twój klucz publiczny i nazwy, które chcesz poświadczyć, podpisane kluczem prywatnym.

Format to PKCS#10, opisany w RFC 2986. W żądaniu jest nazwa podmiotu, twój klucz publiczny, zbiór atrybutów niosących alternatywne nazwy oraz podpis złożony twoim kluczem prywatnym nad całością. Ten samopodpis to dowód posiadania: pokazuje, że nadawca ma klucz, dla którego zostanie wystawiony certyfikat.

Tych dwóch plików nie wolno traktować zamiennie. Żądanie jest po to, by je wysłać: do urzędu certyfikacji, w zgłoszeniu do pomocy technicznej, gdziekolwiek. Klucza prywatnego nie wysyła się nigdy. Na tej stronie klucz powstaje i zostaje w twojej przeglądarce. Kodowi strony nadal musisz zaufać, jak w każdym narzędziu WWW, ale możesz sprawdzić, co wysyła: otwórz panel sieci i patrz, gdy tworzysz klucz.

Dwa pliki, tworzone razemRFC 2986 · PKCS #8

Klucz prywatnyZachowaj to

-----BEGIN PRIVATE KEY-----
  • Połowa prywatnaPodpisuje teraz żądanie, a później każde połączenie z twoim serwerem
  • Jej połowa publicznaSkopiowana do żądania

Jedna kopia, na twoim komputerze

Żądanie podpisania certyfikatuWyślij to

-----BEGIN CERTIFICATE REQUEST-----
  1. Nazwa podmiotu108 bajtówOpcjonalne w większości certyfikatów
  2. Twój klucz publiczny294 bajtyJedyne pole, którego urząd certyfikacji na pewno użyje
  3. Nazwy, o które poprosiłeś60 bajtówAlternatywne nazwy, niesione jako atrybut
  4. Podpis261 bajtówZłożony kluczem prywatnym nad wszystkim powyżej

Nie zawiera żadnego sekretu

Prawdziwe żądanie, 749 bajtów w sumie, obok klucza, który je utworzył. Tylko żądanie musi kiedykolwiek opuścić twój komputer: zawiera publiczną połowę klucza i podpis, który mogła złożyć tylko połowa prywatna.
Generator CSR: pola podmiotu, alternatywne nazwy i gotowe żądanie podpisania certyfikatu razem z kluczemGenerator CSR: pola podmiotu, alternatywne nazwy i gotowe żądanie podpisania certyfikatu razem z kluczemNazwyNazwy hostów, które ma obejmować certyfikat. Pierwsza staje się nazwą pospolitą; reszta dołącza do niej.KluczRSA albo krzywa eliptyczna. Parę kluczy tworzy twoja przeglądarka, na twoich oczach.Kim jesteśPola podmiotu. Publiczny urząd certyfikacji sam je waliduje, więc przetrwa tylko kilka z nich.Dwa plikiŻądanie do wysłania i klucz prywatny do zachowania. Klucz istnieje tylko w twojej przeglądarce, dopóki go nie zapiszesz.To samo, jako polecenieLinia OpenSSL, która tworzy dokładnie to żądanie, gdy wolisz zrobić to sam.
Tworzone żądanie: nazwy, typ klucza i dwa pliki, które z tego powstają. Wybierz numer, aby zobaczyć, co pokazuje dana część.

Dlaczego tworzyć klucz w przeglądarce?

Bo klucz prywatny, który trafia na cudzy serwer, spełnia własną definicję skompromitowanego klucza przyjętą w branży, niezależnie od tego, co ten serwer potem z nim zrobi.

CA/Browser Forum w Baseline Requirements definiuje to bez pola do dyskusji: „A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, or an unauthorized person has had access to it.” Nie trzeba żadnego nadużycia. Wystarczy, że klucz dotarł.

To nie jest teoria. W 2020 roku DigiCert znalazł 337 kluczy prywatnych, które klienci wkleili razem ze swoimi żądaniami, unieważnił wszystkie związane z nimi certyfikaty i opisał to publicznie: „by sending the private key to DigiCert along with the CSR, the customer has compromised the private key”, dodając, że „the only part of a CSR we use is the public key”. Generator, który tworzy klucz na własnym serwerze i oddaje ci kopię, według tej definicji już go skompromitował. Ta strona nie może tego zrobić: crypto.subtle.generateKey działa w twojej przeglądarce, w ramce w piaskownicy, która nie może się nigdzie połączyć, a strona wokół niej widzi tylko klucz publiczny.

Gdzie powstaje klucz prywatnyCA/Browser Forum TLS BR 2.3.1

Ta strona

Twoja przeglądarka
  1. Web Crypto tworzy parę kluczy crypto.subtle.generateKey
  2. Klucz podpisuje żądanie
  3. Zapisujesz oba pliki
Nic nie przekracza tej linii
Ich serwer

Klucz istniał tylko na twoim komputerze

Generator, który tworzy klucz na swoim serwerze

Twoja przeglądarka
  1. Twoje nazwy i dane idą na serwer
Klucz prywatny ją przekracza
Ich serwer
  1. Serwer tworzy parę kluczy
  2. Klucz prywatny wraca do ciebie

Skompromitowany z definicji, zanim cokolwiek zainstalujesz

„A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, or an unauthorized person has had access to it.”

definicja, którą urzędy certyfikacji napisały dla samych siebie

To już się zdarzyłoW 2020 roku jeden urząd certyfikacji znalazł 337 kluczy prywatnych przysłanych razem z żądaniamiKażdy związany z nimi certyfikat został unieważniony

Różnica nie leży w tym, jak powstaje klucz, ale gdzie. Klucz, który był na cudzym serwerze, spełnia już własną definicję skompromitowanego klucza przyjętą w branży, niezależnie od tego, co ten serwer potem z nim zrobi.

Jak utworzyć CSR

Wpisz nazwy hostów, wybierz typ klucza i naciśnij przycisk. Cała reszta jest opcjonalna: nowoczesny certyfikat identyfikują jego alternatywne nazwy, a nie podmiot.

Wpisz w polu nazw każdą nazwę, którą ma obejmować certyfikat: example.com, www.example.com, wildcard taki jak *.api.example.com albo adres IP. Pierwsza staje się też nazwą pospolitą, a Baseline Requirements wymagają, by nazwa pospolita, jeśli w ogóle jest, dokładnie powtarzała jedną z alternatywnych nazw.

Kraj, organizacja i miejscowość mają znaczenie tylko dla certyfikatu z walidacją organizacji lub rozszerzoną walidacją, i nawet wtedy urząd certyfikacji musi je sam zweryfikować, zanim trafią do certyfikatu. W certyfikacie z walidacją domeny, takim jak wystawia Let's Encrypt, reguły dopuszczają w podmiocie tylko kraj i nazwę pospolitą. Generator oznacza dwa pola, które publiczny urząd certyfikacji usuwa lub zabrania, czyli jednostkę organizacyjną i adres e-mail, a kolumna obok formularza pokazuje, co by się zmieniło.

Od nazw do dwóch plików/csr-generator
  1. Wpisz nazwy

    Każdy host, który ma obejmować certyfikat; pierwszy staje się nazwą pospolitą
  2. Wybierz typ klucza

    P-256, chyba że coś starego musi go odczytać
  3. Utwórz żądanie

    Twoja przeglądarka tworzy klucz i podpisuje nim żądanie
  4. Weź dwa pliki

    Wyślij żądanie do urzędu certyfikacji; zachowaj klucz
Cała praca, tak jak robi to ta strona. Wszystko poza nazwami jest opcjonalne: nowoczesny certyfikat identyfikują jego alternatywne nazwy, więc pola podmiotu mają znaczenie tylko przy zamówieniu z walidacją organizacji.

Jaki typ klucza wybrać?

ECDSA P-256 do wszystkiego nowego: jest tak mocny jak 3072-bitowy klucz RSA, znacznie mniejszy i dozwolony przez reguły, których przestrzega każdy publiczny urząd certyfikacji. RSA 2048, gdy klucz musi odczytać starsze urządzenie.

NIST stawia P-256 i RSA-3072 na tym samym poziomie 128 bitów bezpieczeństwa, a RSA-4096 nie daje żadnej własnej siły: następny stopień w jego tabeli to 7680 bitów. Klucz 4096 kosztuje więc każdego odwiedzającego dodatkową pracę przy handshake bez udokumentowanego zysku. P-384 to stopień 192 bitów, a Baseline Requirements dopuszczają też P-521, ale Let's Encrypt odrzuca P-521: żądanie może być w pełni zgodne z regułami i mimo to nie przejść w urzędzie, którego chciałeś użyć.

Ed25519 jest tu oferowany, bo świetnie nadaje się do SSH, do podpisywania i do prywatnego urzędu certyfikacji, ale żaden publiczny urząd certyfikacji nie wystawi dla niego certyfikatu TLS. Reguły wymieniają RSA i trzy krzywe NIST, a potem mówią: „no other algorithms or key sizes are permitted”. To samo dotyczy postkwantowego ML-DSA: uchwała, która pozwoliłaby na niego w publicznym TLS, została zamknięta bez scalenia w październiku 2026. Generator mówi o tym przy każdym wyborze, zamiast pozwolić ci dowiedzieć się z maila z odrzuceniem.

Siła zabezpieczenia według tabeli NISTNIST SP 800-57 Part 1 Rev 5, Table 2
112 bitów128 bitów192 bity256 bitów
RSA20483072768015360
RSA 40964096
ECDSA—P-256P-384P-521

4096 bitów: brak własnego stopnia Tabela przechodzi od jednego rozmiaru od razu do następnego, więc dodatkowa praca przy handshake nie daje niczego, co byłoby zapisane

Poza tabelą

Ed25519Żaden publiczny urząd certyfikacji nie wystawia dla niego certyfikatów

ML-DSAPostkwantowy: uchwała, która by na niego pozwoliła, została zamknięta bez scalenia w październiku 2026

  • Ta sama siła
  • Oferowane tutaj
  • W tabeli, niedostępne tutaj
  • PrzyjmujeLet's Encrypt
Czytaj w poprzek, nie w dół: P-256 i 3072-bitowy klucz RSA mają tę samą siłę, a krzywa osiąga to przy jednej dwunastej rozmiaru klucza. Klucz może mieścić się w regułach i mimo to zostać odrzucony przez urząd certyfikacji, którego chciałeś użyć.

Co wpisać w każde pole

Nazwy: każdy host, który obejmuje certyfikat. Kraj: dwie litery. Organizacja: twoja nazwa prawna, dla certyfikatu OV lub EV. Wszystko inne jest opcjonalne, a część jest już zakazana.

Jednostka organizacyjna jest zakazana. Zgodnie z uchwałą SC047 CA/Browser Forum żaden publiczny certyfikat TLS wystawiony od 1 września 2022 roku nie może zawierać OU; urząd certyfikacji usuwa je, zamiast odrzucić zamówienie. Adres e-mail w podmiocie też nie jest dozwolony w certyfikacie z walidacją domeny i jest odradzany w pozostałych. Ten generator nadal oferuje oba pola, dla prywatnych urzędów certyfikacji, i je oznacza.

Kraj to kod ISO 3166-1 alpha-2: US, DE, GB, IN, a nie nazwa kraju i nie trzy litery. Województwo lub stan wpisz w pełnym brzmieniu, bez skrótu. W certyfikacie z rozszerzoną walidacją potrzebujesz też jurysdykcji rejestracji i numeru rejestrowego, które ten generator oferuje.

Które pola podmiotu trafiają do certyfikatuCA/Browser Forum TLS BR 7.1.2.7
W twoim żądaniuDVWalidacja domenyOVWalidacja organizacjiEVRozszerzona walidacja
Nazwa pospolitaCN
KrajC
OrganizacjaO
Miejscowość, województwo lub stanL, ST
Ulica, kod pocztowystreet, postalCode
Jednostka organizacyjnaOUZakazane od 1 września 2022
Adres e-mailemailAddress
Numer rejestrowy, kategoria działalności, jurysdykcjaserialNumber, businessCategory, jurisdictionC
  • W certyfikacie, tak jak zweryfikował urząd certyfikacji
  • Dozwolone, ale odradzane
  • Nie ma w tym rodzaju certyfikatu
  • Nigdy niedozwolone
Wpisz tylko to, co może nieść certyfikat, który kupujesz: urząd certyfikacji musi zweryfikować każde pole podmiotu, które zachowuje, a generator oznacza pola, które publiczny urząd usuwa.

Czy mogę użyć ponownie klucza albo CSR?

Możesz: nic tego nie zabrania. Ale nowy klucz do każdego certyfikatu kosztuje sekundę i ogranicza to, do czego może dosięgnąć jeden wyciekły klucz.

Baseline Requirements mówią wprost: „one certificate request MAY suffice for multiple Certificates to be issued to the same Applicant”, więc użycie żądania ponownie do odnowienia jest dozwolone. Koszt pojawia się, gdy coś pójdzie nie tak. Jeśli ten klucz kiedykolwiek zostanie skompromitowany, trzeba w ciągu 24 godzin unieważnić każdy certyfikat, który go niesie, a nie tylko ten, o który się martwiłeś.

A skompromitowany klucz jest spalony na zawsze: urząd certyfikacji „SHALL reject a certificate request”, jeśli wie, że klucz uległ kompromitacji, więc żaden urząd, który o tym usłyszał, nie poświadczy go już nigdy. Przy certyfikatach, których ważność spada do 47 dni w 2029 roku, ponownie użyty klucz podpisywałby przez lata dziesiątki odnowień. Utworzenie nowego trwa sekundę.

Jeden klucz za kilkoma certyfikatamiCA/Browser Forum TLS BR 4.9.1.1 · 6.1.1.3

Jeden klucz, użyty ponownie

Klucz wycieka
  • www.example.com
  • api.example.com
  • mail.example.com

3 certyfikaty unieważnione w ciągu 24 godzin

A żaden urząd certyfikacji, który o tym usłyszał, nie poświadczy już tego klucza

Nowy klucz do każdego

  • www.example.com
  • api.example.comNietknięte
  • mail.example.comNietknięte

1 certyfikat unieważniony w ciągu 24 godzin

Ponowne użycie klucza jest dozwolone. Koszt pojawia się dopiero, gdy ten klucz wycieknie: odpada wszystko, co go niesie, a klucz jest odtąd odrzucany.

Co dzieje się po wysłaniu CSR

Urząd certyfikacji weryfikuje nazwy, ignoruje większość reszty i odsyła certyfikat. Zachowaj klucz prywatny: bez niego nie zainstalujesz certyfikatu.

Walidacja dotyczy nazw, a nie pliku: rekordu DNS, pliku na serwerze WWW albo maila na adres w domenie. Gdy ją przejdziesz, certyfikat wraca, a żądanie przestaje być potrzebne: nie służy do instalacji, odnowienia ani unieważnienia niczego. Musisz zachować klucz prywatny, bo bez niego certyfikat jest bezużyteczny. Wklej certyfikat do dekodera CSR i dodaj obok klucz prywatny, by sprawdzić, że do siebie pasują, zanim cokolwiek zrestartujesz.

Certyfikat będzie krótki. Publiczny certyfikat TLS wystawiony dziś nie może trwać dłużej niż 200 dni, a ta granica spadnie do 100 dni 15 marca 2027 i do 47 dni 15 marca 2029. Przy takich długościach odnawianie musi być automatyczne, czyli ACME, a klient ACME tworzy żądanie za ciebie, więc ta strona jest na przypadki, których klient nie obsłuży: urządzenie, appliance, urząd certyfikacji, który chce żądania ręcznie.

Od żądania do działającego certyfikatuRFC 8555 · CA/Browser Forum TLS BR 6.3.2
  1. Twój komputerWysyłasz żądanie
  2. Urząd certyfikacjiUrząd sprawdza, że kontrolujesz każdą nazwęRekord DNSPlik na serwerze WWWE-mail na adres w domenie
  3. Urząd certyfikacjiPodpisuje certyfikat i odsyła go
  4. Twój komputerInstalujesz go obok kluczaPotem żądanie przestaje być potrzebne
Klucz prywatny nigdy się nie rusza
Jak długo może trwać certyfikat
  1. 398 dniObowiązuje dziś
  2. 200 dniod 15 marca 2026
  3. 100 dniod 15 marca 2027
  4. 47 dniod 15 marca 2029
Walidacja dotyczy nazw, a nie pliku. Certyfikat, który wraca, jest bezużyteczny bez klucza, a tak krótka ważność to powód, dla którego odnawianie musi być teraz automatyczne.

To samo w OpenSSL

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout example.com.key -out example.com.csr tworzy klucz i żądanie jednym krokiem.

Generator pisze polecenie dla wszystkiego, co wypełnisz, razem z alternatywnymi nazwami i każdym rozszerzeniem, a nasze testy przepuszczają je przez OpenSSL, by sprawdzić, że tworzy ten sam podmiot i te same rozszerzenia co strona. Dodaj -subj "/CN=example.com", by pominąć pytania, -addext "subjectAltName=DNS:example.com,DNS:www.example.com" dla nazw i -utf8, by nazwa z akcentem przetrwała. -nodes zostawia klucz niezaszyfrowany: OpenSSL 3 woli nowszy zapis -noenc, ale nadal przyjmuje -nodes, jedyny zapis, który zna LibreSSL wbudowany w macOS. Ten LibreSSL w ogóle nie potrafi utworzyć klucza Ed25519; do niego użyj OpenSSL 1.1.1 lub nowszego.

Aby sprawdzić, co utworzyłeś: openssl req -in example.com.csr -text -verify -noout drukuje każde pole i weryfikuje samopodpis, a gdy podpis się nie zgadza, kończy przed wydrukowaniem czegokolwiek. Aby potwierdzić, że klucz należy do żądania, porównaj openssl req -in example.com.csr -pubkey -noout z openssl pkey -in example.com.key -pubout. Żaden standard nie przypisuje CSR rozszerzenia pliku, więc .csr, .pem, .req i .txt są jednakowo poprawne.

Jedno polecenie, flaga po fladzeOpenSSL 3 · openssl-req(1)

openssl req -new -utf8 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout example.com.key -out example.com.csr -sha256 -subj '/CN=example.com' -addext 'subjectAltName=DNS:example.com,DNS:www.example.com'

  1. openssl req -newUtwórz żądanie podpisania certyfikatu
  2. -utf8Odczytaj podmiot jako UTF-8, by nazwa z akcentem przetrwała
  3. -newkey…i razem z nim nową parę kluczy
  4. -pkeyoptNa krzywej P-256
  5. -nodesZostaw plik klucza niezaszyfrowany (OpenSSL 3.0 zapisuje to też jako -noenc)
  6. -keyoutDokąd zapisać klucz prywatny
  7. -outDokąd zapisać żądanie
  8. -sha256Hash, którym podpisano żądanie
  9. -subjPodmiot, żeby nie zadawało pytań
  10. -addextAlternatywne nazwy

Odczytaj je z powrotem i zweryfikuj ich własny podpisopenssl req -in example.com.csr -text -verify -noout

Czy klucz należy do żądania? Oba wyniki muszą być identyczneopenssl req -in example.com.csr -pubkey -nooutopenssl pkey -in example.com.key -pubout

Polecenie, które ta strona pisze dla swojego pierwszego przykładu, rozebrane na części. Generator pisze tę samą linię dla wszystkiego, co wypełnisz, z każdą nazwą i rozszerzeniem, które niesie żądanie.

Tworzenie CSR w Windows, IIS i macOS

Windows ma certreq i plik .inf; macOS ma Keychain Access. Oba mają pułapkę, którą warto znać przed startem.

W Windows certreq -new request.inf request.req czyta plik, którego sekcja [NewRequest] ustawia podmiot i długość klucza, a alternatywne nazwy trafiają do [Extensions] pod OID 2.5.29.17 w liniach _continue_: klucza SAN= nie ma, a łatwo się pomylić. Własna strona referencyjna Microsoftu ostrzega, że jej przykład używa SHA-1, a Let's Encrypt odrzuca żądanie podpisane SHA-1, więc ustaw hash samodzielnie.

Na Macu zapisuje takie żądanie Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority; typ i rozmiar klucza kryją się za polem „Let me specify key pair information”, a kluczy RSA poniżej 2048 bitów już nie oferuje. Żadna z tych dróg nie ułatwia alternatywnych nazw, dlatego polecenie bywa łatwiejszą drogą.

Tworzenie bez przeglądarkiMicrosoft Learn · Apple Support

certreqWindows Server i IIS

certreq czyta zwykły plik tekstowy i zapisuje żądaniecertreq -new request.inf request.req
request.inf
[NewRequest]Subject = "CN=example.com"KeyAlgorithm = RSAKeyLength = 2048HashAlgorithm = sha256RequestType = PKCS10[Extensions]2.5.29.17 = "{text}"_continue_ = "DNS=example.com&"_continue_ = "DNS=www.example.com"

Alternatywne nazwy: rozszerzenie wskazane przez swój OID, jedna nazwa w linii

Ustaw hash samodzielnie: przykład Microsoftu jest napisany wokół SHA-1, który urząd certyfikacji odrzuca

Klucza SAN= nie ma

Keychain AccessmacOS

Keychain Access zapisuje żądanie z Certificate Assistant
  1. Keychain Access
  2. Certificate Assistant
  3. Request a Certificate From a Certificate Authority
Twój Mac nazywa te menu w swoim języku

Let me specify key pair information

Typ i rozmiar klucza kryją się za tym polem wyboruRSA do 4096; poniżej 2048 już nie jest oferowane
Obie drogi tworzą klucz na twoim własnym komputerze, i to jest ważne. Żadna nie ułatwia alternatywnych nazw, dlatego polecenie bywa łatwiejszą drogą.

Czy generator CSR online jest bezpieczny?

Zależy to wyłącznie od tego, gdzie powstaje klucz. Strona, która tworzy go w przeglądarce, jest bezpieczna; strona, która tworzy go na serwerze, miała dostęp do twojego klucza prywatnego.

Test jest prosty i możesz go przeprowadzić sam: otwórz panel sieci w przeglądarce, utwórz żądanie i patrz. Jeśli klucz powstaje na stronie, ani on, ani nic, co wpisałeś, nie wychodzi: tutaj jedyne zapytania dotyczą samej strony i dwóch publicznych list nazw, takich samych dla każdego odwiedzającego. Jeśli zapytanie wychodzi i wraca klucz, ten klucz istniał najpierw gdzie indziej i według definicji branży jest skompromitowany, zanim go zainstalujesz.

Ta strona całą pracę wykonuje w przeglądarce: parę kluczy daje crypto.subtle.generateKey w ramce w piaskownicy, która nie może się nigdzie połączyć, strona zapisuje żądanie wokół klucza publicznego, a ramka podpisuje je raz kluczem prywatnym, który nigdy jej nie opuszcza. Dwa pliki pojawiają się w twojej przeglądarce i nigdzie więcej. Jeśli wolisz nie ufać żadnej stronie, polecenie OpenSSL na tej stronie robi to samo na twoim komputerze: pokazujemy je właśnie z tego powodu.

Panel sieci, gdy powstaje kluczNarzędzia deweloperskie › Sieć

Ta strona

ŻądanieCo niesie
GETtlds.jsonLista domen najwyższego poziomu: taka sama dla każdego odwiedzającego
GETsuffixes.jsonLista sufiksów publicznych: taka sama dla każdego odwiedzającego

Nic, co wpisałeś, ani żaden klucz nie opuszcza strony

Generator, który tworzy klucz na swoim serwerze

ŻądanieCo niesie
POST…/generateTwoje nazwy i dane
200-----BEGIN PRIVATE KEY-----Klucz prywatny, utworzony gdzie indziej

Klucz wraca przez sieć: istniał najpierw gdzie indziej

Spróbuj: otwórz narzędzia deweloperskie przeglądarki na karcie Sieć i utwórz żądanie. Poza własnym kodem strony pobiera ona dwie publiczne listy, takie same dla każdego odwiedzającego; klucz tworzy kryptografia twojej przeglądarki, w ramce, która nie może się nigdzie połączyć.

Generator CSR: pytania i odpowiedzi

Jak utworzyć CSR?

Wpisz nazwy hostów, które ma obejmować certyfikat, wybierz typ klucza (ECDSA P-256 to rozsądny wybór domyślny) i naciśnij przycisk. Powstają dwa pliki: żądanie podpisania certyfikatu do wysłania do twojego urzędu certyfikacji i klucz prywatny do zachowania. Wszystko dzieje się w twojej przeglądarce, więc nic nie jest wysyłane i nic nie jest zapisywane.

Czy generowanie CSR online jest bezpieczne?

Zależy, gdzie powstaje klucz. Jeśli strona tworzy go na własnym serwerze, ten serwer miał dostęp do twojego klucza prywatnego, co według definicji CA/Browser Forum jest kompromitacją. Jeśli tworzy go w przeglądarce, klucz jej nie opuszcza. Ta strona robi to drugie i możesz to potwierdzić: otwórz panel sieci i patrz, gdy tworzysz klucz.

Jaki typ klucza wybrać?

ECDSA P-256 do wszystkiego nowego. NIST ocenia go na tę samą siłę 128 bitów co 3072-bitowy klucz RSA, a jest znacznie mniejszy, więc każdy handshake jest tańszy. RSA 2048 wybierz, gdy potrzebuje go starsze urządzenie lub load balancer. RSA 4096 nie daje udokumentowanego zysku ponad 3072, a Let's Encrypt nie przyjmie P-521, choć reguły na niego pozwalają.

Czy mogę użyć klucza Ed25519 do publicznego certyfikatu?

Nie, żaden publiczny urząd certyfikacji nie wystawia dla niego certyfikatów. Baseline Requirements wymieniają RSA i krzywe P-256, P-384 i P-521, a potem dodają, że „no other algorithms or key sizes are permitted”. Ed25519 jest tu oferowany, bo nadaje się do SSH, do podpisywania i do prywatnego urzędu certyfikacji, ale publiczne zamówienie TLS na niego zostanie odrzucone.

Do czego służy plik klucza prywatnego?

To ta połowa pary, która dowodzi, że certyfikat jest twój, i nigdy nie trafia do nikogo. Zapisz go obok żądania: będzie ci potrzebny do zainstalowania certyfikatu, który odeśle urząd certyfikacji, a bez niego certyfikat jest bezużyteczny. Jeśli go zgubisz, jedynym wyjściem jest nowy klucz, nowe żądanie i nowy certyfikat.

Czy muszę wpisać organizację i kraj?

Tylko w certyfikacie z walidacją organizacji lub rozszerzoną walidacją, i nawet wtedy urząd certyfikacji musi je sam zweryfikować, zanim trafią do certyfikatu. W certyfikacie z walidacją domeny reguły dopuszczają w podmiocie tylko kraj i nazwę pospolitą: nic więcej nie może się pojawić. Generator oznacza dwa pola, które publiczny urząd certyfikacji usuwa lub zabrania: jednostkę organizacyjną i adres e-mail.

Dlaczego pole jednostki organizacyjnej ostrzega mnie?

Bo OU jest zakazane w publicznym certyfikacie TLS. Zgodnie z uchwałą SC047 CA/Browser Forum żaden publiczny certyfikat TLS wystawiony od 1 września 2022 roku nie może go zawierać, więc urzędy certyfikacji usuwają je z zamówienia, zamiast je odrzucić. Ten generator nadal oferuje to pole, dla prywatnych urzędów certyfikacji, i mówi ci, co zrobi publiczny.

Czy mogę umieścić w CSR więcej niż jedną domenę?

Tak: do tego służą alternatywne nazwy podmiotu i tak zamawia się certyfikat wielodomenowy, czyli SAN. Dodaj każdy host, który ma obejmować certyfikat, także formę www, jeśli jej chcesz. Możesz mieszać wildcardy ze zwykłymi nazwami i dodawać adresy IP, choć nie każdy urząd certyfikacji sprzedaje certyfikaty na adres.

Czy mogę użyć CSR lub klucza ponownie do następnego certyfikatu?

Możesz: reguły mówią, że jedno żądanie może posłużyć do kilku certyfikatów dla tego samego wnioskodawcy. Powód, by tego nie robić, to zasięg szkody. Jeśli ten klucz kiedykolwiek zostanie skompromitowany, trzeba w ciągu 24 godzin unieważnić każdy certyfikat, który go niesie, a żaden urząd certyfikacji, który o tym usłyszał, nie poświadczy go już nigdy. Utworzenie nowego trwa sekundę.

Czym jest hasło weryfikacyjne (challenge password)?

Opcjonalnym atrybutem z RFC 2985, pomyślanym jako wspólny sekret, który podajesz, prosząc później o unieważnienie. Nadal używa go rejestracja urządzeń SCEP, a niektóre usługi certyfikatów Microsoftu o nie proszą. W zwykłym zamówieniu certyfikatu WWW nie odgrywa żadnej roli, więc zostaw je puste, chyba że twój urząd certyfikacji wyraźnie o nie poprosił.

Czy to działa dla certyfikatu wildcard?

Tak. Wpisz w nazwach *.example.com i dodaj też example.com, jeśli ma być objęta sama domena: wildcard zastępuje dokładnie jeden człon i nie pasuje do nazwy, pod którą stoi. Gwiazdka musi być całym lewym członem, a żaden urząd certyfikacji nie wystawi wildcarda nad publicznym sufiksem, takim jak *.co.uk.

Co zrobić z plikami potem?

Wyślij żądanie do urzędu certyfikacji, a klucz prywatny zachowaj w bezpiecznym miejscu, tak by tylko ty mógł go czytać (uprawnienia 600 w Linuksie i macOS). Gdy certyfikat wróci, wklej go razem z żądaniem do dekodera CSR, by potwierdzić, że mają ten sam klucz, zanim cokolwiek zrestartujesz: klucz niepasujący do certyfikatu to błąd, który lepiej wychwycić, zanim zrobi to twój serwer.

Czegoś brakuje?Zaproponuj funkcję lub nowe narzędzie