Памятка по командам openssl

Сгенерировать новый приватный ключ:

openssl genrsa -out my.key 2048


Создать CSR на основе ключа:

openssl req -new -out my.csr -key my.key


Конвертировать из DER в PEM:

openssl x509 -inform der -in certificate.cer -out certificate.pem


Создать CSR на основе ключа и конфига:

openssl req -new -out my.csr -key my.key -config my.cnf

ВАЖНО! — В последних версиях Crome для валидности сертификата необходимо ПРОДУБЛИРОВАТЬ CN в alt.names, иначе сертификат красный.

И пример конфига с несколькими дополнительными именами и парой IP:

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
countryName = RU
countryName_default = RU
stateOrProvinceName = Moscow
stateOrProvinceName_default = Moscow
localityName = Moscow
localityName_default = Moscow
organizationalUnitName = IT
organizationalUnitName_default = MYCORP
commonName = *.mycorp.local
commonName_default = *.mycorp.local
commonName_max = 64

[v3_req]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = *.mycorp.local
DNS.2 = tst-m1.mycorp.local
DNS.3 = tst-m2.mycorp.local
DNS.4 = tst-m3.mycorp.local
IP.1 = 192.168.0.1
IP.2 = 192.168.0.2


Конвертировать ключ и сертификат в pfx:

openssl pkcs12 -inkey my.key -in my.cer -export -out my.pfx

Конвертировать в PFX со связкой сертификатов:

cat certificate.crt intermediate.crt root.crt > cert-bundle.crt
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in cert-bundle.crt


Конвертировать pfx в pem с сохранением приватного ключа:

openssl pkcs12 -in my.pfx -out my.pem -nodes

Извлечь из pfx приватный ключ:

openssl pkcs12 -in filename.pfx -nocerts -out key.pem

Только сертификат, без ключа:

openssl pkcs12 -in my.pfx -clcerts -nokeys -out my.pem

Снять защиту паролем с извлечённого ключа:

openssl rsa -in key.pem -out server.key


Проверить соответствие ключа и сертификата друг другу:

$ openssl x509 -noout -modulus -in server.crt | openssl md5
$ openssl rsa -noout -modulus -in server.key | openssl md5

2+

Добавить комментарий

Ваш e-mail не будет опубликован.