Какие имена для сертификатов TLS при использовании записей SRV
Когда я использую запись DNS SRV, какие имена я добавляю в сертификат TLS? Например, если я настраиваю slapd на двух серверах (klas1 и klas2) и определяю эти записи DNS (используя нотацию стиля файла зоны связывания):
_ldap._tcp.example.com. IN SRV 10 0 389 klas1.example.com.
_ldap._tcp.example.com. IN SRV 20 0 389 klas2.example.com.
klas1.example.com. A 192.168.0.1
klas2.example.com. A 192.168.0.2
Я ожидаю, что мои клиенты будут настроены для подключения к ldap://example.com/. Однако, когда я генерирую сертификаты TLS на серверах, я генерирую их с именем "example.com", или я генерирую их с именем "klas1.example.com", или мне нужны оба?
2 ответа
Сертификат должен соответствовать имени хоста, т.е. A
запись для сервера. Вы могли бы иметь индивидуальный klas1.example.com
& klas2.example.com
сертификаты или общий шаблон *.example.com
сертификат, но example.com
не будет соответствовать
SRV
записи не нуждаются в сертификатах, так как они используются только на уровне DNS для обнаружения службы.
Общее имя сертификата или SubjectAltName.DNS должно совпадать с именем, которое было первоначально задано в URI LDAP. RFC6125 в добавлении B.3 ( https://tools.ietf.org/html/rfc6125) гласит:
3,6. Проверка подлинности сервера
Клиент ДОЛЖЕН проверить свое понимание имени хоста сервера.
против личности сервера, представленной в
Сообщение сертификата, чтобы предотвратить атаки "человек посередине".Сопоставление проводится по следующим правилам:
o Клиент ДОЛЖЕН использовать имя хоста сервера, которое он использовал для открытия соединения LDAP, в качестве значения для сравнения с именем сервера, как указано в сертификате сервера. Клиент НЕ ДОЛЖЕН использовать каноническое DNS-имя сервера или любую другую производную форму имени.
Обратите внимание, что та же логика применяется для других протоколов, которые используют записи SRV, таких как SIP. Это несколько логично с точки зрения безопасности. Если бы был проверен только хост, было бы легко выполнить атаку в середине, перенаправив соединение на узлы, имена хостов которых не связаны с первоначально запрашиваемым именем домена.
Вам нужны только записи вашего хоста (записи A), для обнаружения используются сервисные записи, а не само соединение.