SSL-как общие имена (CN) и альтернативные имена субъектов (SAN) работают вместе?



предполагая, что свойство Subject Alternative Name (SAN) сертификата SSL содержит два DNS-имени




  1. domain.tld

  2. host.domain.tld


но общее имя (CN) имеет значение только один из обоих: CN=domain.tld.




  • имеет ли эта настройка особое значение или какие-либо преимущества [dis]по сравнению с настройкой обеих ЦНС?

  • что происходит на стороне сервера, если другой, host.domain.tld, в настоящее время просили?


EDIT:



как недавно узнал ответ Евгения, что поведение отличается от реализации, я хочу получить более конкретный: как это OpenSSL 0.9.8 b+ обрабатывать данный сценарий?

1872   3  

3 ответов:

Это зависит от реализации, но общее правило заключается в том, что домен проверяется на все SANs и общее имя. Если домен найден там, то сертификат подходит для подключения.

RFC 5280, в разделе 4.1.2.6 говорится: "имя субъекта может быть перенесено в поле субъекта и/или расширение subjectAltName". Это означает, что доменное имя должно быть проверено как на расширение SubjectAltName, так и на свойство Subject (а именно на общее имя параметр) сертификата. Эти два места дополняют друг друга, а не дублировать его. И SubjectAltName-это подходящее место для размещения дополнительных имен, таких как www.domain.com или www2. domain.com

обновление: по состоянию на RFC 6125, опубликованный в ' 2011 валидатор должен сначала проверить SAN, и если SAN существует, то CN не должен быть проверен. Обратите внимание, что RFC 6125 относительно недавно и все еще существуют сертификаты и CAs, которые выдают сертификаты, которые включают "основное" доменное имя в CN и альтернативные доменные имена в SAN. Т. е., исключив CN из проверки, если SAN присутствует, вы можете запретить какой-либо другой действительный сертификат.

чтобы быть абсолютно правильным, Вы должны поместить все имена в поле SAN.

поле CN должно содержать имя субъекта, а не доменное имя, но когда Netscape обнаружил эту вещь SSL, они пропустили, чтобы определить ее самый большой рынок. Просто не было поля сертификата, определенного для URL сервера.

Это было решено поместить домен в поле CN, и в настоящее время использование поля CN устарело, но все еще широко используется. CN может содержать только один домен имя.

общие правила для этого: CN-поместите здесь свой основной URL (для совместимости) SAN-поместите весь свой домен здесь, повторите CN, потому что он не в нужном месте, но используется для этого...

Если вы нашли правильную реализацию, ответы на ваши вопросы будут следующими:

  • имеет ли эта настройка особое значение или какие-либо преимущества [dis]по сравнению с настройкой обеих ЦНС? Вы не можете установить оба CNs, потому что CN может содержать только одно имя. Вы можно сделать с 2 простых сертификата CN вместо одного сертификата CN + SAN, но вам нужно 2 IP-адреса для этого.

  • Что происходит на стороне сервера, если другой хозяин.домен.tld, запрашивается ли? Неважно, что происходит на стороне сервера.

короче: Когда клиент браузера подключается к этому серверу, то браузер отправляет зашифрованные пакеты, которые шифруются с помощью открытого ключа сервера. Сервер расшифровывает пакет, и если сервер может расшифровать, затем он был зашифрован для сервера.

сервер ничего не знает от клиента перед расшифровкой, потому что только IP-адрес не шифруется через соединение. Вот почему вам нужно 2 IP для 2 сертификатов. (Забудьте SNI, там все еще слишком много XP.)

на стороне клиента браузер получает CN, затем SAN, пока все не будут проверены. Если одно из имен совпадает с именем сайта, то проверка URL была выполнена браузер. (я не говорю о проверке сертификата, конечно, много запросов ocsp, crl, aia и ответов путешествует по сети каждый раз.)

Базовые Требования CABForum

Я вижу, что никто еще не упомянул раздел в базовых требованиях. Я чувствую, что они важны.

Q: SSL-как общие имена (CN) и альтернативные имена субъектов (SAN) работают вместе?
A: вовсе нет. Если есть SANs, то CN можно игнорировать. -- По крайней мере, если программное обеспечение, которое выполняет проверку, очень строго соответствует базовым требованиям CABForum.

(Так это означает, что я не могу ответить на "Редактировать" на ваш вопрос. Только исходный вопрос.)

базовые требования CABForum, V. 1.2.5 (по состоянию на 2 апреля 2015 г.), стр. 9-10:

9.2.2 Поля Отличительного Имени Субъекта
а. Общее Поле Имя
Сертификат Поле: тема: commonName (OID 2.5.4.3)
Обязательный/Необязательный: осуждается (поощряется, но не запрещено)
содержание: если имеется, это поле должно содержать один IP-адрес или полное доменное имя, которое является одним из значений, содержащихся в расширении subjectAltName сертификата (см. раздел 9.2.1).

редактировать: ссылки из комментария @Bruno's

RFC 2818: HTTP через TLS, 2000, Раздел 3.1: Удостоверение Сервера:

если расширение subjectAltName типа dnsname-это подарок, который должен Используйте как личность. В противном случае (наиболее конкретное) общее имя необходимо использовать поле в поле Тема сертификата. Несмотря на то использование общего имени-это существующая практика, она устарела и Центры сертификации рекомендуется использовать DNS-имя.

RFC 6125:представление и проверка доменной службы приложений Удостоверение в открытом ключе Интернета Инфраструктура с использованием X. 509 (PKIX) Сертификаты в контексте безопасности транспортного уровня (TLS), 2011, раздел 6.4.4: проверка общих имен:

[...] если и только если предъявленный идентификатор не входит ДНС-идентификатор, СРВ-идентификатор, идентификатор-ID, или любое приложение-конкретные типы идентификаторов поддерживается клиентом, то клиент может в крайнем случае проверить для строки, форма которой соответствует форме полного домена DNS имя в поле общего имени Поля субъекта (т. е. CN-ID).

Comments

    Ничего не найдено.