Памятка по командам 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
default_md = sha256 # Используемый алгоритм, опционально
prompt = no 	# Не задавать вопросов в консоли, берёт все параметры из конфига

[req_distinguished_name]
 
countryName=RU	        	# Страна
ST=Moscow		        # Область
L=Moscow			# Город
O=mycorp.local			# Название организации
OU=IT				# Название подразделения
CN=*.mycorp.local		# Подписываемое имя, Common Name
emailAddress=admin@mycorp.local	# E-mail организации

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

[alt_names] # Дополнительные имена или IP, ОБЯЗАТЕЛЬНЫ для валидации актуальными браузерами, как минимум главный CN
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

Проверить запрос на сертификат (CSR)

openssl req -text -noout -verify -in CSR.csr

Конвертировать ключ и сертификат в 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 не будет опубликован.