ssl_verify_depth
Директива ssl_verify_depth задаёт максимальную глубину цепочки сертификатов CA, которой будет доверять сервер при SSL/TLS-аутентификации клиента. — NGINX HTTP Core
Описание
Директива ssl_verify_depth используется в контексте SSL-модуля NGINX для установки максимально допустимой глубины цепочки центров сертификации (CA) для SSL/TLS-аутентификации клиента. Эта глубина задаётся целым числом, которое указывает, сколько сертификатов CA может быть в цепочке доверия, представляемой сертификатом клиента. Если соединение представляет цепочку сертификатов длиной больше значения, установленного этой директивой, соединение будет отклонено. Директива особенно полезна в средах, где требуется аутентификация клиента, так как она гарантирует, что в проверочном пути допускается только ограниченное число промежуточных CA. Ограничивая максимальную глубину, администраторы сервера могут лучше контролировать отношения доверия и снижать потенциальные риски, связанные с чрезмерно глубокими или недоверенными цепочками сертификатов. Например, установка ssl_verify_depth в 1 означает, что сервер будет доверять только сертификату, у которого либо есть прямой доверенный издатель (корневой CA), либо цепочка, включающая одного промежуточного CA. Это помогает задать строгую иерархию CA и может предотвратить потенциальные проблемы с безопасностью, возникающие из-за глубоких цепочек доверия, в которые может быть включён недоверенный CA.
Пример конфига
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/private/server.key;
ssl_client_certificate /etc/ssl/certs/ca.crt;
ssl_verify_client on;
ssl_verify_depth 2;
}Убедитесь, что заданное значение не чрезмерно ограничивает доверие; проконсультируйтесь с иерархией вашего центра сертификации (CA) перед определением глубины.
Цепочка, превышающая указанную глубину, приведёт к отказам в соединении, что может повлиять на доступ пользователей в случае неправильной настройки.