Назад | Перейти на главную страницу

Как получить многодоменный ssl с подстановочными знаками от Let's encrypt?

У меня есть сервер, который отвечает на такие домены, как 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, и это безумное и безумное развертывание;)