Openldap и проверка цепочки сертификатов SSL

Я только что настроил TLS для slapd на одном сервере, используя простой PKI, например этот:

ldap cert < промежуточный сертификат CA < сертификат корневого ЦС

Чтобы подключиться к серверу ldap с помощью TLS от клиента, я добавил, как и во многих найденных мною руководствах, сертификат корневого ЦС и сертификат ldap к доверенным сертификатам.

Я - возможность подключиться через TLS к моему серверу ldap

Но почему не нужен промежуточный сертификат CA? Должен ли он быть отправлен сервером ldap вместе с сертификатом ldap? Я настроил их только в моей конфигурации slapd:

olcTLSCACertificateFile: /etc/ldap/ssl/root.pem
olcTLSCertificateFile: /etc/ldap/ssl/ldap_crt.pem
olcTLSCertificateKeyFile: /etc/ldap/ssl/ldap_key.pem

И кажется, что каждый из этих корневых файлов и файлов сертификатов ldap содержит только свой собственный сертификат.

Я что-то не понимаю? Почему он работает, когда клиент не знает, что такое промежуточный сертификат CA?

0
задан 24 July 2018 в 21:32
1 ответ

Причина наличия сертификата промежуточного ЦС вообще заключается в том, что закрытый ключ для сертификата корневого ЦС может храниться в автономном режиме.

При нормальной настройке центра сертификации сертификат корневого ЦС хранится в автономном режиме и используется только для подписания сертификатов промежуточных центров сертификации, что является редким случаем с участием вооруженной охраны, сотрудников уровня C и большого количества протоколов. Закрытый ключ промежуточного ЦС остается в сети и используется для подписи запросов сертификатов TLS от конечных клиентов. Было бы невозможно поддерживать такого рода протокол для подписи каждого конечного сертификата.

В случае компрометации CA необходимо заменить только промежуточный CA (и сертификаты, подписанные им); если бы корневой ЦС был скомпрометирован, он бы в значительной степени прекратил работу, так как каждый сертификат, подписанный ЦС, должен был быть заменен.

Кроме того, корневой ЦС должен существовать в хранилище доверенных сертификатов клиента. Клиент решает, для каких центров сертификации он будет принимать сертификаты, и хранит эти сертификаты корневых центров сертификации локально. Наличие произвольных промежуточных сертификатов дает ЦС большую гибкость в этом отношении. Поскольку он просто подписан корневым ЦС, а не является корневым ЦС,его можно гораздо проще изменить (например, перейти на более безопасный алгоритм хеширования).

Во время согласования TLS сервер отправит свой сертификат и подписавший его сертификат, если не корневой ЦС, и сертификат, который подписал тот , если не корневой CA. Поскольку у клиента есть сертификат корневого ЦС, сервер не должен его отправлять. Некоторые клиенты откажутся подключаться, если сервер попытается отправить сертификат корневого ЦС.


В вашем случае вы не указали источник своих сертификатов и не предоставили какую-либо соответствующую информацию, поэтому можно делать только предположения.


12104] Если они из частного ЦС, то сертификат TLS мог быть подписан непосредственно корневым ЦС вместо или в дополнение к промежуточному. У клиента также может быть промежуточное звено в своем хранилище доверенных сертификатов (хотя и не должно).

1
ответ дан 4 December 2019 в 15:53

Теги

Похожие вопросы