Моя компания размещает example.com и sub.example.com на одном сервере, используя подстановочный SSL-сертификат для * .example.com. Пришло время обновить наш сертификат, и мы не знаем, как мы получили этот сертификат. Мой босс не думает, что мы заплатили те 200 долларов, которые, похоже, стоят. Мой старый менеджер (который ушел из компании несколько дней назад) был тем, кто установил его, и он точно не помнит, что он делал, но он думает, что ему нужно было что-то сгенерировать, а не просто использовать файлы, которые нам предоставил CA .
Конфигурация apache содержит эти строки и никаких других строк SSL * File без комментариев:
SSLCertificateFile /usr/local/ssl/cert/example.com.crt
SSLCACertificateFile /usr/local/ssl/cert/intermediate.crt
SSLCertificateKeyFile /usr/local/ssl/private/example.com-wild.key
Когда я просматриваю промежуточный.crt (openssl x509 -in intermediate.crt -text -noout
), в нем вообще не упоминается наша организация или веб-сайт, и это действительно с 2010 по 2020 год.
Data:
Version: 3 (0x2)
Serial Number: 145105 (0x236d1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
Validity
Not Before: Feb 19 22:45:05 2010 GMT
Not After : Feb 18 22:45:05 2020 GMT
Subject: C=US, O=GeoTrust, Inc., CN=RapidSSL CAb
example.com.crt - это подстановочный знак:
Data:
Version: 3 (0x2)
Serial Number: 1113972 (0x10ff74)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=GeoTrust, Inc., CN=RapidSSL CA
Validity
Not Before: Mar 1 09:05:39 2014 GMT
Not After : Mar 4 09:08:54 2015 GMT
Subject: serialNumber=T0nuTvfeaQVtd3dZ30zGI94HrvUsoRjx, OU=GT53409919, OU=See www.rapidssl.com/resources/cps (c)14, OU=Domain Control Validated - RapidSSL(R), CN=*.example.com
Я не разбираюсь в инфраструктуре SSL, поэтому думаю, что у меня есть несколько связанных вопросов. Прошу прощения, если они вообще не связаны; Я не знаю того, чего не знаю.
Как мы получили групповой сертификат, если мы не заплатили за него 200 долларов или что-то еще? (Я был бы умеренно удивлен, если бы мы могли создать его с помощью только intermediate.crt, потому что тогда мы могли бы создавать их до 2020 года. Но в / usr / local / ssl нет других файлов, и ничего в / etc / pki / tls, который был изменен с 2013 года, так что еще мы могли бы использовать? Я также был бы умеренно удивлен, если бы мой босс просто неправильно запомнил, и мы заплатили 200 долларов или что-то в этом роде, но мне это кажется возможным.)
Откуда у нас промежуточный .crt?
Что делает intermediate.crt? У меня есть самозаверяющий сертификат с подстановочными знаками, который отлично работает (за исключением того, что он самозаверяющий) на наших бета-серверах, без строки SSLCACertificateFile; и мы купили сертификат без подстановочных знаков, который защищает example.com, который мне удалось установить с помощью VirtualHost без SSLCACertificateFile, и мы находимся в процессе получения сертификата для sub.example.com, который я планирую установить аналогично. Требуется ли SSLCACertificateFile для несамозаверяющих сертификатов с подстановочными знаками?
То, как я сгенерировал самоподписанный сертификат, похоже, может быть связано:
openssl req -nodes -new -keyout private/example.com.key -out certs/intermediate.csr
openssl x509 -req -days 365 -in certs/intermediate.csr -signkey private/file.key -out certs/example.com.crt
но в этом случае мне не нужно упоминать промежуточный.csr в конфигурации apache, а промежуточный.csr не может быть исследован openssl x509
как и файл intermediate.crt.
How did we get the wildcard certificate, if we didn't pay $200 or whatever for it?
Более дешевый CA, чем вы нашли сейчас? Я уверен, что вы найдете продавца с более низкими ценами.
Where did we get intermediate.crt? What does intermediate.crt do?
У вас есть это из вашего CA. CA обычно не подписывают сертификаты напрямую своими корневыми сертификатами, а делают это через промежуточный сертификат. Этот промежуточный сертификат подписывает сертификаты для клиента и, в свою очередь, подписывается корневым сертификатом, которому доверяют браузеры и ОС. Это называется цепочкой сертификатов, а также причиной того, что для Apache есть отдельный параметр. SSLCACertificateFile
чтобы предоставить эту цепочку от сертификата веб-сайта до сертификата CA.
У меня есть самозаверяющий сертификат с подстановочными знаками, который отлично работает (за исключением того, что он самозаверяющий) на наших бета-серверах, без строки SSLCACertificateFile;
Тогда браузер, который вы тестировали, также доверяет промежуточному сертификату, но вы не можете на это полагаться. Вы также можете использовать SSLLabs ssltest инструмент, чтобы проверить, не является ли ваша цепочка неполной или пропущена промежуточная (там называется дополнительной загрузкой).
Требуется ли SSLCACertificateFile для несамоподписанных сертификатов с подстановочными знаками?
Нет, потому что в этом случае нет цепочки сертификатов, см. Выше.
Судя по деталям в вашем сертификате и промежуточному звену, кажется довольно ясным, что ваш старый менеджер действительно заплатил любую цену за сертификат с подстановочными знаками от RapidSSL год назад. Скорее всего, ему пришлось сгенерировать запрос сертификата для отправки в RapidSSL.