ngx_http_ssl_module#

Модуль ngx_http_ssl_module реализует поддержку протокола HTTPS.

Важно

Для сборки и работы этого модуля нужна библиотека OpenSSL.

Пример конфигурации#

worker_processes auto;

http {

    ...

    server {
        listen              443 ssl;
        keepalive_timeout   70;

        ssl_protocols       TLSv1.2 TLSv1.3;
        ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
        ssl_certificate     /usr/local/nginx/conf/cert.pem;
        ssl_certificate_key /usr/local/nginx/conf/cert.key;
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;

        ...
    }

Директивы#

Список директив модуля представлен в таблице ниже.

Директивы ngx_http_ssl_module#

Синтаксис

Значение по умолчанию

Контекст

Описание

ssl_buffer_size;

ssl_buffer_size 16k;

http, server

Устанавливает размер буфера для передачи данных

ssl_certificate;

http, server

Задает путь к файлу сертификата в формате PEM для виртуального сервера

ssl_certificate_key <file>;

http, server

Указывает путь к файлу с приватным ключом в формате PEM для виртуального сервера

ssl_ciphers <ciphers>;

ssl_ciphers HIGH:!aNULL:!MD5;

http, server

Определяет список допустимых шифров в формате, совместимом с OpenSSL

ssl_client_certificate <file>;

http, server

Задает файл с сертификатами доверенных центров сертификации (CA) в формате PEM для проверки клиентских сертификатов

ssl_conf_command <name> <value>;

http, server

Позволяет задавать пользовательские команды конфигурации OpenSSL

ssl_crl <file>;

http, server

Указывает файл со списком отозванных сертификатов (CRL) в формате PEM для проверки клиентских сертификатов

ssl_dhparam <file>;

http, server

Задает файл с параметрами для DHE-шифрования

ssl_early_data on | off;

ssl_early_data off;

http, server

Включает или отключает использование ранних данных (early data) в протоколе TLS 1.3

ssl_ecdh_curve <curve>;

ssl_ecdh_curve auto

http, server

Задает кривую curve для ECDHE-шифрования

ssl_key_log <path>;

http, server

Включает запись SSL-ключей клиентских соединений в указанный файл

ssl_ocsp on | off | leaf;

ssl_ocsp off;

http, server

Активирует проверку статуса сертификатов через OCSP. Параметр leaf ограничивает проверку только клиентским сертификатом

ssl_ocsp_cache off | [shared:<name>:<size>];

ssl_ocsp_cache off;

http, server

Настраивает кеш для хранения результатов проверки статуса сертификатов через OCSP

ssl_ocsp_responder <url>;

http, server

Переопределяет URL сервера OCSP для проверки статуса сертификатов

ssl_password_file <file>;

http, server

Указывает файл с паролями для доступа к приватным ключам, где каждый пароль записан на отдельной строке

ssl_prefer_server_ciphers on | off;

sl_prefer_server_ciphers off;

http, server

Устанавливает приоритет шифров, предложенных сервером, над клиентскими при использовании SSLv3 и TLS

ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3];

ssl_protocols TLSv1.2 TLSv1.3;

http, server

Разрешает использование указанных протоколов. Доступные опции зависят от версии OpenSSL

ssl_reject_handshake on | off;

ssl_reject_handshake off;

http, server

Если включено, отклоняет попытки установления SSL-соединения в блоке server

ssl_session_cache off | none | [builtin[:<size>]] [shared:<name>:<size>];

ssl_session_cache none;

http, server

Настраивает тип и размер кеша для хранения параметров SSL-сессий

ssl_session_ticket_key <file>;

http, server

Указывает файл с ключом для шифрования и дешифрования TLS session tickets

ssl_session_tickets on | off;

ssl_session_tickets on;

http, server

Включает или отключает возможность возобновления сессий с использованием TLS session tickets

ssl_session_timeout <time>;

ssl_session_timeout 5m;

http, server

Устанавливает срок действия параметров SSL-сессии, в течение которого клиент может их повторно использовать

ssl_stapling on | off;

ssl_stapling off;

http, server

Включает или отключает прикрепление OCSP-ответов к сертификатам сервера

ssl_stapling_file <file>;

http, server

Задает получение OCSP-ответов из файла <file> без запроса у сервера OCSP

ssl_stapling_responder url;

http, server

Переопределяет URL сервера OCSP, указанный в расширении сертификата Authority Information Access

ssl_stapling_verify on | off;

ssl_stapling_verify off;

http, server

Включает или отключает проверку сервером OCSP-ответов

ssl_trusted_certificate <file>;

http, server

Задает файл с сертификатами доверенных центров сертификации (CA) в формате PEM для проверки клиентских сертификатов и OCSP-ответов

ssl_verify_client on | off | optional | optional_no_ca;

ssl_verify_client off;

http, server

Включает проверку клиентских сертификатов. Результат проверки доступен через переменную $ssl_client_verify

ssl_verify_depth <number>;

ssl_verify_depth 1;

http, server

Настраивает глубину проверки в цепочке клиентских сертификатов

Встроенные переменные#

Модуль ngx_http_ssl_module предоставляет набор встроенных переменных, таких как:

  • $ssl_cipher — название алгоритма шифрования, используемого в текущем SSL-соединении;

  • $ssl_protocol — версия протокола, используемого для установления SSL-соединения;

  • $ssl_client_verify — результат проверки клиентского сертификата: SUCCESS - в случае успеха, FAILED:reason - при ошибке, NONE — если сертификат не был предоставлен;

  • $ssl_session_id — идентификатор сессии текущего SSL-соединения;

  • $ssl_session_reusedr — если сессия была повторно использована, . — если нет;

  • $ssl_server_name — имя сервера, запрошенное через SNI (Server Name Indication);

  • $ssl_client_cert — клиентский сертификат в формате PEM для установленного SSL-соединения;

  • $ssl_client_serial — серийный номер клиентского сертификата, используемого в SSL-соединении;

и другие.