Úvod
Tento článek vysvětlí, jak vygenerovat žádost o podpis certifikátu (CSR). Při získávání certifikátu SSL/TLS od certifikační autority (CA) budete muset odeslat CSR.
Předpoklady
Jakákoli distribuce Linuxu s nainstalovaným OpenSSL. Pokud nemáte server, proč neuvažovat o Linux VPS od Atlantic.Net a být v provozu za méně než 30 sekund.
Vygenerujte žádost o podpis certifikátu (CSR)
CSR i soukromý klíč pro váš server lze vygenerovat v jednom snadném kroku. Ujistěte se, že přístup k vašemu soukromému klíči je co nejvíce omezený, protože tento jedinečný identifikátor se používá k ověření pravosti vašeho serveru.
Poznámka:Pokud máte potíže s úspěšným spuštěním příkazu, možná se budete muset přihlásit jako sudo nebo root.
openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr
Poté budete požádáni o následující informace:
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Poznámka:Heslo výzvy nesouvisí s heslem soukromého klíče. Ponechte pole prázdné, pokud to nevyžaduje vaše certifikační autorita. Otázku „volitelný název společnosti“ můžete také ponechat prázdnou.
Nyní máte soubor „.csr“ (Žádost o podpis certifikátu), který bude nutné odeslat certifikační autoritě (CA). Jakmile CA certifikát podepíše, vrátí soubor certifikátu. Formát vydaného certifikátu se bude lišit v závislosti na certifikační autoritě. Nejběžnějším typem bude formát PEM, který využívá rozšíření jako .crt , .key , .csr , .cer a .pem .
V závislosti na potřebách vaší aplikace nebo webového serveru možná budete muset převést jeden z těchto formátů na jiné formáty, jako je PKCS#7, PKCS#12 nebo DER. Zde je několik užitečných příkazů pro převod souborů:
PEM → PKCS#7 (P7B)
openssl crl2pkcs7 -nocrl -certfile yourdomain.cer -out yourdomain.p7b -certfile CACert.cer
-nocrl
volba označuje, že do struktury PKCS#7 nezahrnete seznam odvolaných certifikátů (CRL). Většina nových nasazení bude tuto možnost používat, protože nebudou k dispozici žádné starší certifikáty k odvolání.
Každý -certfile
volba označuje soubor certifikátu, který bude zahrnut do výstupního souboru, což je užitečné při vytváření řetězce certifikátů obsahujícího certifikát serveru a zprostředkující certifikát certifikační autority (v příkladu „vaše_doména.cer“ a „CACert.cer“ výše).
Položka -out
volba označuje název souboru, do kterého se má zapsat výstup PKCS#7.
PEM → PKCS#12 (PFX)
openssl pkcs12 -export -out yourdomain.pfx -inkey yourdomain.key -in yourdomain.crt -certfile CACert.crt
-export
volba označuje, že tento příkaz vytvoří soubor PKCS#12. Výchozí chování bez -export
možnost je analyzovat vstup.
The -in
volba označuje soubor ve formátu PEM, ze kterého se má číst. Pokud tento soubor neobsahuje také soukromý klíč, budete potřebovat -inkey
možnost označit také soubor soukromého klíče.-certfile
možnost označuje další certifikáty, které mají být zahrnuty do souboru PKCS#12, jako jsou zprostředkující certifikáty.
Položka -out
volba označuje soubor, do kterého se má výstup zapsat, obvykle soubor „.pfx“.
PEM → DER
openssl x509 -outform der -in yourdomain.pem -out yourdomain.der
-in
volba označuje soubor vstupního certifikátu, který má být převeden.
Položka -out
volba označuje název výstupního souboru.-outform
volba označuje formát souboru pro výstup (v tomto příkladu je vstupní soubor ve formátu PEM a tento příkaz převezme tento soubor a vytvoří soubor ve formátu DER).