proxy_ssl_certificate
Директива `proxy_ssl_certificate` задаёт файл клиентского SSL-сертификата для SSL/TLS-соединений с проксируемым сервером. — NGINX HTTP Core
Описание
Директива `proxy_ssl_certificate` используется в конфигурации NGINX для указания пути к файлу SSL-сертификата, который должен быть отправлен upstream-серверу при установлении SSL/TLS-соединения. Эта директива особенно важна в сценариях, когда NGINX выступает в роли обратного прокси для HTTPS-соединений, обеспечивая защищённую связь между клиентом и сервером. Указывая клиентский сертификат, NGINX может аутентифицировать себя перед backend-сервером, что позволяет реализовать взаимную аутентификацию SSL/TLS. Эта директива может использоваться в разных контекстах: `http`, `server` и `location`, что делает её гибкой и применимой в разных областях конфигурации NGINX. Указанный сертификат должен быть в формате PEM — стандартном формате для SSL‑сертификатов, обеспечивающем совместимость с протоколами SSL/TLS. Клиентский сертификат часто сопровождается приватным ключом, который задаётся директивой `proxy_ssl_certificate_key` для установления защищённого соединения с backend-сервером. Крайне важно обеспечить корректный доступ к файлу сертификата для пользователя, под которым запускается процесс NGINX. Если NGINX не сможет получить доступ к файлу сертификата из‑за проблем с правами, он не запустится или не сможет перезагрузиться, что приведёт к сбоям в работе сервиса. Кроме того, для оптимальной производительности и безопасности может потребоваться настройка параметров SSL-сессии вместе с этой директивой — например, указание поддерживаемых SSL‑протоколов и наборов шифров для полного обеспечения защищённости канала связи.
Пример конфига
location /api {
proxy_pass https://backend.example.com;
proxy_ssl_certificate /etc/ssl/certs/client-cert.pem;
proxy_ssl_certificate_key /etc/ssl/private/client-key.pem;
}Убедитесь, что файл сертификата в формате PEM; в противном случае NGINX не сможет его использовать.
Проверьте права доступа к файлу сертификата, чтобы убедиться, что пользователь NGINX может его читать; неправильные права доступа могут привести к ошибкам при запуске.
Не забудьте также указать директиву `proxy_ssl_certificate_key`, чтобы предоставить соответствующий закрытый ключ для клиентского сертификата.