Сертификаты OpenSSL
Центры сертификации (Certificate Authority, CA)
Свой собственный центр сертификации - звучит круто.
Создадим папку где будем генерировать сертификаты:
mkdir ~/certs cd ~/certs
Создадим корневой сертификат:
openssl req -new -newkey rsa:2048 -x509 -nodes -days 9999 \ -subj /CN=rootCa/O=Test/C=RU/ \ -keyout rootCa.key -out rootCa.crt # Посмотреть содержимое openssl x509 -noout -text -in rootCa.crt
Теперь можно выпускать сертификаты подписанные собственным CA.
Создание приватного ключа для нового сертификата:
openssl genrsa -out site.key 2048
Создание запроса на выдачу нового сертификата:
openssl req -new \ -subj /CN=example.domain.com/O=Test/C=RU/ \ -key site.key -out site.csr # Посмотреть содержимое openssl req -noout -text -in site.csr
Создать запрос можно где угодно без участия CA.
Клиент отправляет в центр сертификации только .csr файл.
И еще раз - приватный ключ .key не требуется для выпуска сертификата!
Выпуск сертификата:
openssl x509 -req -days 365 \ -CA rootCa.crt -CAkey rootCa.key -CAcreateserial \ -in site.csr -out site.pem # Посмотреть содержимое openssl x509 -noout -text -in site.pem
Простой самоподписанный сертификат
Создание простого самоподписанного сертификата в интерактивном режиме
openssl req -new -x509 -days 9999 -nodes -newkey rsa:2048 -out example.pem -keyout example.key
Создание простого самоподписанного сертификата в одну команду
openssl req -new -x509 -days 9999 -nodes -subj /CN=localhost/C=RU -newkey rsa:2048 -out example.pem -keyout example.key
Обсуждение