У меня есть сервер, который отвечает на такие домены, как a.b.c.example.com
. a
b
и c
являются динамическими частями, и я хочу охватить их все одним сертификатом SSL.
Я создал подстановочный сертификат Вот для *.example.com
. Но теперь у меня ошибка ERR_CERT_COMMON_NAME_INVALID
.
В то же время c.example.com
работает хорошо.
Могу ли я каким-то образом выдать сертификат для нескольких вложенных поддоменов?
Нет, ты не можешь этого сделать. В соответствии с RFC 2828, Символы подстановки сертификатов SSL могут использоваться для сопоставления одного компонента доменного имени, а не нескольких компонентов. Это было исправлено и дополнительно разъяснено в RFC 6125, в котором говорится в разделе 5.2, что:
o The ’*’ (ASCII 42) wildcard character is allowed in the dNSName of
the subjectAltName extension (and in common name, if used to store
the host name), but only as the left-most (least significant) DNS
label in that value. This wildcard matches any left-most DNS
label in the server name. That is, the subject *.example.com
matches the server names a.example.com and b.example.com, but does
not match example.com or a.b.example.com. Implementations MUST
support wildcards in certificates as specified above, but MAY
provide a configuration option to disable them.
Другими словами, использование нескольких подстановочных знаков не допускается, и любой подстановочный знак должен находиться в крайнем левом компоненте DNS-имени. Это повторяется в разделе 6.4.3, определяя, как клиенты должны вести себя, когда они сталкиваются с сертификатами с подстановочными знаками в них - любые подстановочные знаки, кроме самого левого компонента имени домена, должны приводить к тому, что сертификат не соответствует имени домена, которое вы его используете. для. В частности, первый пункт 6.4.3:
1. The client SHOULD NOT attempt to match a presented identifier in
which the wildcard character comprises a label other than the
left-most label (e.g., do not match bar.*.example.net).
Таким образом, даже если бы вы могли заставить Letsencrypt создавать эти сертификаты, посетители вашего веб-сайта все равно не приняли бы их.
Как отметил @Zoredache, подстановочные знаки идут только той глубины, для которой они созданы. Если у вас есть подстановочный знак для *.example.com
, то только домены внутри этого [*].example.com
домен действительны. Если вам нужен двухуровневый, вам нужно будет создать многоуровневый сертификат, охватывающий эти домены, например *.a.example.com
. Я не могу сказать, что когда-либо слышал о многослойном сертификате с подстановочными знаками, поэтому вам, вероятно, потребуется создать несколько подстановочных знаков для каждого поддомена.
Вы можете создать единый сертификат, который может сделать это с помощью альтернативных имен субъектов (SAN). Просто взгляните на сертификат stackoverlow.com, и это безумное и безумное развертывание;)