У меня есть сертификат SSL от sslforfree. у меня есть ca-bundle
, certificate
и это private
ключ.
Я хочу создать свой сертификат для разных поддоменов. Я надеюсь, что каким-то образом я смогу подписать этот сертификат своими существующими сертификатами таким образом, что он пройдет все те проверки ssl, которые проходят браузеры, почтовые клиенты и другие.
Я прошел через десятки руководств, но либо я упускаю важный нюанс, либо эти руководства не то, что мне нужно.
Кто-нибудь может мне помочь, как я могу подписать свои новые сертификаты с помощью openssl
из CentOS 7
?
Технически это можно сделать, но этим сертификатам никто не будет доверять. Ваш SSL-сертификат *НЕ ДОПУСКАЕТСЯ* подписывать другие сертификаты.
Если вы посмотрите на свой сертификат, вы можете найти Basic Constraints
расширение сертификата, которое сообщает о типе субъекта: конечный объект или CA. isCA
бит будет установлен в 0, что означает, что владельцем сертификата является конечный объект. Код проверки сертификата будет строго проверять это поле, и если они обнаружат, что этот сертификат конечного объекта использовался для подписи других сертификатов, они будут автоматически отклонены. Для справки: RFC 5280 §4.2.1.9
Посмотрите на свой сертификат с помощью такой команды openssl x509 -text -in filename
. Увидеть CA: FALSE? Это флаг, который говорит, что сертификат нельзя использовать в качестве CA или для подписания подчиненных сертификатов.
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
...
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
Validity
Not Before: Jul 8 22:26:53 2019 GMT
Not After : Oct 6 22:26:53 2019 GMT
...
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Basic Constraints: critical
CA:FALSE
Ни один CA из доверенного корня не предоставит вам сертификат с включенной этой функцией. Если бы они это сделали, вы бы смогли MITM любого в мире.
Я хочу создать свой сертификат для разных поддоменов.
Просто используйте letsencrypt. Вы можете получить все бесплатные сертификаты для доменов, которые вы можете подтвердить либо с помощью DNS, либо с помощью HTTP-запроса. Вы можете использовать официальный клиент или сторонние клиенты. Для Letsencrypt существует множество простых в использовании клиентов.