Рейтинг:10

Работают ли SSL-сертификаты, содержащие два подстановочных знака (особенно в Let's Encrypt)?

флаг vn

Я хочу включить два подстановочных знака в сертификат SSL (будет), подписанный Let's Encrypt: *.*.thost3.de. Будет ли этот сертификат соответствовать любым именам хостов, соответствующим этому правилу (например, пример.example.thost3.de, привет.мир.thost3.de), и может ли Let's Encrypt принимать такие подстановочные знаки в сертификатах, которые они подписали?

Рейтинг:10
флаг cl
A.B

Нет, это НЕ ДОЛЖНО (в значении RFC «НЕ ДОЛЖНО») работать, поскольку задокументировано в RFC 6125 (Представление и проверка службы доменных приложений Идентификация в инфраструктуре открытых ключей Интернета с использованием X.509 (PKIX) Сертификаты в контексте безопасности транспортного уровня (TLS)):

Если клиент сопоставляет эталонный идентификатор с представленным
идентификатор, часть доменного имени DNS которого содержит подстановочный знак
символ '*', применяются следующие правила:

  1. Клиент НЕ ДОЛЖЕН пытаться сопоставить представленный идентификатор, в котором подстановочный знак содержит метку, отличную от крайняя левая метка (например, не совпадать с bar.*.example.net).

  2. Если подстановочный знак является единственным символом крайней левой метки в представленном идентификаторе, клиент НЕ ДОЛЖЕН сравнивать против всего, кроме самой левой метки ссылочного идентификатора (например, *.example.com будет соответствовать foo.example.com, но не bar.foo.example.com или example.com).

[...]

Соединяем эти два вместе:

  • у вас не может быть подстановочного знака в другом месте, кроме самой левой части (разделенной точкой) сертификата: внутренний подстановочный знак недействителен.
  • у вас не может быть сертификата с подстановочным знаком, совпадающего с дополнительной частью метки (то есть: разделенной точкой) слева от него: опять же, это означает, что если использовался действительный одиночный подстановочный знак, ничто с дополнительной левой частью не может совпадать (так что hello.world. thost3.de не может соответствовать сертификату *.thost3.de).

Что вы можете сделать, так это выпустить сертификат с большим количеством частей SAN, возможно, с (действительным) подстановочным знаком. Но я совсем не уверен, что Let's Encrypt сможет принять это.

РЕДАКТИРОВАТЬ: *.stackexchange.com подписан Let's Encrypt с несколькими SAN, имеющими подстановочный знак.

Пример:

$ openssl s_client -connect stackexchange.com:443 </dev/null 2>/dev/null| openssl x509 -noout -текст | grep -A1 'Альтернативное имя субъекта X509v3' | тр ',' '\n'
            X509v3 Альтернативное имя субъекта: 
                DNS: *.askubuntu.com
 DNS: *.blogoverflow.com
 DNS: *.mathoverflow.net
 DNS: *.meta.stackexchange.com
 DNS: *.meta.stackoverflow.com
 DNS: *.serverfault.com
 DNS: *.sstatic.net
 DNS: *.stackexchange.com
 DNS: *.stackoverflow.com
 DNS: *.stackoverflow.email
 DNS: *.superuser.com
 DNS: askubuntu.com
 [...]
флаг cn
«выдает сертификат с большим количеством частей SAN», да, вы можете выдать это (например, в самозаверяющем сертификате), но ни один браузер (по крайней мере, насколько я знаю) не принимает это. Так что они совершенно бесполезны :)
флаг cn
Нет, я имел в виду: двойные (или более) подстановочные сертификаты, поэтому *.*.serverfault.com не будет принят браузерами, даже если вам удастся подписать такой сертификат.
A.B avatar
флаг cl
A.B
@TobiasMädel ах да, я согласен с этим.
флаг ro
Tim
Есть ли документальное обоснование того, почему это «не следует», а не «не следует»?
флаг sa
И почему это «не следует», а не «должен»?
U. Windl avatar
флаг it
Дело в том, будет ли RA (центр регистрации) фактически принимать такие CSR (запросы на подпись сертификата), когда субъект не разрешен. Довольно бесполезно обсуждать, что будет делать такой сертификат, если вы его не получите. См. определение **Подстановочного доменного имени** в https://letsencrypt.org/documents/isrg-cp-v3.3/.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.