Я задаю этот вопрос, потому что Comodo сообщает мне, что подстановочный сертификат для * .example.com также защищает корневой домен example.com. Таким образом, с помощью одного сертификата my.example.com и example.com защищены без предупреждения со стороны браузера.
Однако это не относится к предоставленному мне сертификату. Мои поддомены хорошо защищены и не выдают ошибок, но корневой домен выдает ошибку в браузере, говоря, что идентификация не может быть проверена.
Когда я сравниваю этот сертификат с другими аналогичными сценариями, я вижу, что в сценариях, которые работают без ошибок, в альтернативном имени субъекта (SAN) перечислены как * .example.com, так и example.com, тогда как в недавнем сертификате от Comodo перечислены только *. example.com в качестве общего имени, а НЕ example.com в качестве альтернативного имени субъекта.
Может ли кто-нибудь подтвердить / уточнить, что корневой домен должен быть указан в деталях SAN, если он также должен быть правильно защищен?
Когда я прочитал это: http://www.digicert.com/subject-alternative-name.htm Кажется, что SAN должен перечислить оба, чтобы работать так, как мне нужно. Какой у вас опыт?
Огромное спасибо.
Существует некоторая несогласованность между реализациями SSL в том, как они соответствуют подстановочным знакам, однако вам понадобится корень в качестве альтернативного имени, чтобы это работало с большинством клиентов.
Для *.example.com
сертификат
a.example.com
должен пройтиwww.example.com
должен пройтиexample.com
должен не проходитьa.b.example.com
может пройти в зависимости от реализации (но, вероятно, нет).По сути, стандарты говорят, что *
должен соответствовать 1 или нескольким символам, отличным от точки, но некоторые реализации допускают использование точки.
Канонический ответ должен быть в RFC 2818 (HTTP через TLS):
Сопоставление выполняется с использованием правил сопоставления, указанных в [RFC2459]. Если в сертификате присутствует более одного идентификатора данного типа (например, более одного имени dNSName, соответствие в любом из набора считается приемлемым). Имена могут содержать подстановочный знак *, который считается совпадающим с любым одним компонент доменного имени или фрагмент компонента. Например.,
*.a.com
соответствует foo.a.com, но не bar.foo.a.com.f*.com
соответствует foo.com, но не bar.com.
RFC 2459 говорит:
- Подстановочный знак «*» МОЖЕТ использоваться как крайний левый компонент имени в сертификате. Например,
*.example.com
будет соответствовать a.example.com, foo.example.com и т. д., но не соответствовать example.com.
Если вам нужен сертификат для работы на example.com, www.example.com и foo.example.com, вам понадобится сертификат с subjectAltNames, чтобы у вас были «example.com» и «* .example.com» (или example.com и все другие имена, которые вам могут понадобиться сопоставить).
Вы правы, корневой домен должен быть альтернативным именем для проверки.
Каждый провайдер SSL, который я когда-либо использовал, будет автоматически добавлять корневой домен в качестве альтернативного имени субъекта к SSL-сертификату с подстановочными знаками, поэтому DOMAIN.COM будет работать автоматически для сертификата с подстановочными знаками * .DOMAIN.COM.
В принципе, и для ваших нужд (которые запустили весь этот поток) ваш подстановочный сертификат должен быть указан как как корневой, так и как подстановочные знаки первого уровня:
"example.com, * .example.com"
Таким образом, один подстановочный сертификат будет охватывать как корневой домен (example.com), так и любые поддомены первого уровня (sub1.example.com, sub2.example.com, ...)
Сертификат в форме «* .example.com» ДОЛЖЕН иметь субдоменное имя. Таким образом, корневой домен явно исключен, поскольку звездочка не принимает NULL как допустимое имя.
НАКОНЕЧНИК: Свободно Центр сертификации Let's Encrypt (LE) позволяет это. Не все центры сертификации придерживаются многоуровневых подстановочных знаков. Вы всегда должны уточнять у своего провайдера CA.
Сертификаты с подстановочными знаками идеально подходят для * .example.com Чтобы защитить свои поддомены и домены с помощью этого сертификата, все, что вам нужно сделать, это установить тот же сертификат на серверах, указывающих на эти домены.
Например, у вас есть подстановочный сертификат для * .example.com one.example.com - сервер 1 example.com - сервер 2
вам необходимо установить этот сертификат на сервере 1 и сервере 2.