proxy_ssl_certificate

Директива `proxy_ssl_certificate` задаёт файл клиентского SSL-сертификата для SSL/TLS-соединений с проксируемым сервером. — NGINX HTTP Core

proxy_ssl_certificate
httpserverlocation
Синтаксисproxy_ssl_certificate path-to-certificate;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `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`, чтобы предоставить соответствующий закрытый ключ для клиентского сертификата.