У меня есть сертификат SSL от sslforfree . У меня есть ca-bundle
, сертификат
и его частный
ключ.
Я хочу создать свой собственный сертификат для разных поддоменов. Я надеюсь, что каким-то образом я смогу подписать этот сертификат моими существующими сертификатами таким образом, что он пройдет все те проверки 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 существует множество простых в использовании клиентов.