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.
Jedna w każdej linii. Pierwsza staje się też nazwą pospolitą.
Rozsądny wybór domyślny: tak samo mocny jak RSA 3072, a znacznie mniejszy.
Pełna nazwa prawna twojej organizacji, taka jak w rejestrze.
Wpisz pełną nazwę zamiast skrótu.
Dwie litery, kod ISO 3166-1.
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ł.
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.
Co zaraz wyśleszECDSA P-256 · SHA-256
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.
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------ Nazwa podmiotu108 bajtówOpcjonalne w większości certyfikatów
- Twój klucz publiczny294 bajtyJedyne pole, którego urząd certyfikacji na pewno użyje
- Nazwy, o które poprosiłeś60 bajtówAlternatywne nazwy, niesione jako atrybut
- Podpis261 bajtówZłożony kluczem prywatnym nad wszystkim powyżej
Nie zawiera żadnego sekretu

NazwyNazwy 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.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.
Ta strona
- Web Crypto tworzy parę kluczy
crypto.subtle.generateKey - Klucz podpisuje żądanie
- Zapisujesz oba pliki
Klucz istniał tylko na twoim komputerze
Generator, który tworzy klucz na swoim serwerze
- Twoje nazwy i dane idą na serwer
- Serwer tworzy parę kluczy
- 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.”
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
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.
Wpisz nazwy
Każdy host, który ma obejmować certyfikat; pierwszy staje się nazwą pospolitąWybierz typ klucza
P-256, chyba że coś starego musi go odczytaćUtwórz żądanie
Twoja przeglądarka tworzy klucz i podpisuje nim żądanieWeź dwa pliki
Wyślij żądanie do urzędu certyfikacji; zachowaj klucz
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.
| 112 bitów | 128 bitów | 192 bity | 256 bitów | |
|---|---|---|---|---|
| RSA | 2048 | 3072 | 7680 | 15360 |
| RSA 4096 | 4096 | |||
| ECDSA | — | P-256 | P-384 | P-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
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
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.
| W twoim żądaniu | DVWalidacja domeny | OVWalidacja organizacji | EVRozszerzona 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
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, użyty ponownie
www.example.comapi.example.commail.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.comapi.example.comNietkniętemail.example.comNietknięte
1 certyfikat unieważniony w ciągu 24 godzin
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.
- Twój komputerWysyłasz żądanie
- Urząd certyfikacjiUrząd sprawdza, że kontrolujesz każdą nazwęRekord DNSPlik na serwerze WWWE-mail na adres w domenie
- Urząd certyfikacjiPodpisuje certyfikat i odsyła go
- Twój komputerInstalujesz go obok kluczaPotem żądanie przestaje być potrzebne
- 398 dniObowiązuje dziś
- 200 dniod 15 marca 2026
- 100 dniod 15 marca 2027
- 47 dniod 15 marca 2029
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.
1openssl req -new 2-utf8 3-newkey ec 4-pkeyopt ec_paramgen_curve:prime256v1 5-nodes 6-keyout example.com.key 7-out example.com.csr 8-sha256 9-subj '/CN=example.com' 10-addext 'subjectAltName=DNS:example.com,DNS:www.example.com'
openssl req -newUtwórz żądanie podpisania certyfikatu-utf8Odczytaj podmiot jako UTF-8, by nazwa z akcentem przetrwała-newkey…i razem z nim nową parę kluczy-pkeyoptNa krzywej P-256-nodesZostaw plik klucza niezaszyfrowany (OpenSSL 3.0 zapisuje to też jako -noenc)-keyoutDokąd zapisać klucz prywatny-outDokąd zapisać żądanie-sha256Hash, którym podpisano żądanie-subjPodmiot, żeby nie zadawało pytań-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
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ą.
certreqWindows Server i IIS
certreq czyta zwykły plik tekstowy i zapisuje żądaniecertreq -new request.inf request.req[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 maKeychain AccessmacOS
Keychain Access zapisuje żądanie z Certificate AssistantTwój Mac nazywa te menu w swoim językuLet me specify key pair information
Typ i rozmiar klucza kryją się za tym polem wyboruRSA do 4096; poniżej 2048 już nie jest oferowaneCzy 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.
Ta strona
tlds.jsonLista domen najwyższego poziomu: taka sama dla każdego odwiedzającegosuffixes.jsonLista sufiksów publicznych: taka sama dla każdego odwiedzającegoNic, co wpisałeś, ani żaden klucz nie opuszcza strony
Generator, który tworzy klucz na swoim serwerze
…/generateTwoje nazwy i dane-----BEGIN PRIVATE KEY-----Klucz prywatny, utworzony gdzie indziejKlucz wraca przez sieć: istniał najpierw gdzie indziej
Generator CSR: pytania i odpowiedzi
Jak utworzyć CSR?
Czy generowanie CSR online jest bezpieczne?
Jaki typ klucza wybrać?
Czy mogę użyć klucza Ed25519 do publicznego certyfikatu?
Do czego służy plik klucza prywatnego?
Czy muszę wpisać organizację i kraj?
Dlaczego pole jednostki organizacyjnej ostrzega mnie?
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ę?
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?
Czym jest hasło weryfikacyjne (challenge password)?
Czy to działa dla certyfikatu wildcard?
*.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?
Czegoś brakuje?Zaproponuj funkcję lub nowe narzędzie
Powiązane narzędzia
Dekoder CSR i Certyfikatów
Dekoduj CSR lub certyfikat SSL: podmiot, SAN, rozmiar klucza, ważność, wystawca, odcisk palca, weryfikacja podpisu i zgodność CSR z certyfikatem
Sprawdzanie Certyfikatu SSL
Weryfikuj ważność certyfikatu SSL i szczegóły bezpieczeństwa
Generator DKIM
Utwórz parę kluczy DKIM w przeglądarce i pobierz rekord TXT selector._domainkey do opublikowania
Generator Haseł
Twórz w przeglądarce silne losowe hasła, frazy i PIN-y z dokładną liczbą bitów i czasem złamania
Kontrola kondycji DNS
Oceń DNS domeny: delegacja, serwery nazw, SOA, DNSSEC i poczta w 40 testach
Generator UUID
Generuj masowo UUID v4, v7, v1, v5 i v3 lub GUID w dowolnym formacie i dekoduj wersję oraz znacznik czasu UUID
