====== OpenSSL kuchařka ======
V celém návodu se používají následující jména:
* **private.key** - soubor s nezašifrovaným tajným privátním klíčem
* **enciphered_private.key** - soubor se zašifrovaným tajným privátním klíčem
* **request.csr** - soubor s certifikační žádostí
* **certificate.pem** - soubor s certifikátem vydaným uživateli příslušnou CA
* **CA_chain.pem** - soubor s řetězcem certifikátů vydavatele
* **certificate.p12** - soubor formátu PKCS12 obsahující uživatelský certifikát, příslušný privátní klíč a řetězec certifikátů CA
* **my_cert** - label certifikátu a privátního klíče v PKCS12 souboru ("//friendly name//")
\\
==== Jak zjistit verzi OpenSSL ====
Oficiální dokumentace pro [[https://www.openssl.org/docs/manmaster/man1/openssl-version.html|zjištění verze]] OpenSSL.
openssl version
==== Jak zjistit verzi OpenSSL s rozšířenými informacemi ====
openssl version -a
\\
===== Genenerování privátního klíče =====
Oficiální dokumentace pro [[https://www.openssl.org/docs/manmaster/man1/openssl-genrsa.html|generování privátního klíče]] v OpenSSL.
==== Genenerování zašifrovaného privátního klíče ====
openssl genrsa -aes256 -out enciphered_private.key 2048
==== Genenerování nezašifrovaného privátního klíče ====
openssl genrsa -out private.key 2048
\\
===== Genenerování certifikační žádosti =====
Oficiální dokumentace pro [[https://www.openssl.org/docs/manmaster/man1/openssl-req.html|generování certifikační žádosti]] v OpenSSL.
==== Generování certifikační žádosti z existujícího privátního klíče ====
openssl req -new -key private.key -out request.csr
==== Generování certifikační žádosti spolu se zašifrovaným privátním klíčem ====
openssl req -new -newkey rsa -keyout enciphered_private.key -pkeyopt rsa_keygen_bits:2048 > request.csr
==== Generování certifikační žádosti spolu s nezašifrovaným privátním klíčem (OpenSSL verze < 3) ====
openssl req -new -newkey rsa -keyout private.key -pkeyopt rsa_keygen_bits:2048 -nodes > request.csr
==== Generování certifikační žádosti spolu s nezašifrovaným privátním klíčem (OpenSSL verze >= 3) ====
openssl req -new -newkey rsa -keyout private.key -pkeyopt rsa_keygen_bits:2048 -noenc > request.csr
\\
===== Práce s PKCS12 soubory =====
Oficiální dokumentace pro [[https://www.openssl.org/docs/manmaster/man1/openssl-pkcs12.html|práci s PKCS12 soubory]] v OpenSSL.
==== Generování PKCS12 souboru z certifikátu uživatele, privátního klíče a certifikačního řetězce CA ====
openssl pkcs12 -export -inkey private.key -in your_certificate.pem -certfile CA_chain.pem -name my_cert -out certificate.p12
\\
===== Kontrola certifikátu =====
==== Výpis informací o certifikátu v lidsky čitelné podobě ====
openssl x509 -in certificate.pem -text -noout
==== Zjištění, zda si odpovídají privátní klíč, certifikační žádost a certifikát ====
openssl rsa -noout -modulus -in private.key
openssl req -noout -modulus -in request.csr
openssl x509 -noout -modulus -in certificate.pem