$ssl_protocol

$ssl_protocol содержит версию протокола SSL/TLS, используемую для соединения. — NGINX Core (HTTP)

$ssl_protocol NGINX Core (HTTP)

Описание

Переменная $ssl_protocol в NGINX показывает конкретную версию протокола SSL/TLS, согласованную для защищённого соединения между клиентом и сервером. Эта переменная устанавливается только тогда, когда SSL включён в конфигурации, и отражает последнюю версию протокола, использованную для текущего запроса во время выполнения. Она может возвращать значения, такие как 'TLSv1.2', 'TLSv1.3' или 'SSLv3', в зависимости от протоколов, включённых в SSL-конфигурации сервера. При использовании $ssl_protocol особенно полезна для логирования и условной обработки внутри конфигураций NGINX. Например, администратор может захотеть скорректировать настройки в зависимости от уровня безопасности используемого протокола. Переменная обычно заполняется во время TLS handshake, и, как и другие переменные уровня соединения, её можно получить в различных контекстах, таких как блоки location или server. Это упрощает применение условной логики или усиление мер безопасности на основе используемой версии протокола. Важно, чтобы пользователи понимали, что доступность разных значений протокола в значительной степени зависит от cipher suites и протоколов, сконфигурированных в блоке сервера. Если конкретная версия протокола (например, TLSv1.3) не включена, значение $ssl_protocol может отражать следующую доступную версию, которую сервер и клиент смогут согласовать.

Пример конфига

server {
    listen 443 ssl;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    # Log the SSL protocol used
    access_log /var/log/nginx/ssl_protocol.log 'SSL Protocol: $ssl_protocol';
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Убедитесь, что SSL включён в конфигурации сервера; в противном случае $ssl_protocol не будет установлен.

Проверьте настройки SSL; если не удастся согласовать подходящий протокол, $ssl_protocol может не дать ожидаемых значений.

Помните, что значение протокола зависит от возможностей сервера и запросов клиента, что может ограничивать ожидаемые результаты.