Модуль ngx_mail_ssl_module обеспечивает работу
почтового прокси-сервера по протоколу SSL/TLS.
По умолчанию этот модуль не собирается, его сборку необходимо
разрешить с помощью конфигурационного параметра
--with-mail_ssl_module .
Директивы
синтаксис:
|
ssl on | off ;
|
умолчание:
|
ssl off;
|
контекст:
|
mail , server
|
Включает протокол SSL/TLS для данного сервера.
синтаксис:
|
ssl_certificate файл ;
|
умолчание:
|
—
|
контекст:
|
mail , server
|
Указывает файл с сертификатом в формате PEM
для данного сервера.
Если вместе с основным сертификатом нужно указать промежуточные,
то они должны находиться в этом же файле в следующем порядке — сначала
основной сертификат, а затем промежуточные.
В этом же файле может находиться секретный ключ в формате PEM.
синтаксис:
|
ssl_certificate_key файл ;
|
умолчание:
|
—
|
контекст:
|
mail , server
|
Указывает файл с секретным ключом в формате PEM
для данного сервера.
синтаксис:
|
ssl_prefer_server_ciphers on | off ;
|
умолчание:
|
ssl_prefer_server_ciphers off;
|
контекст:
|
mail , server
|
Указывает, чтобы при использовании протоколов SSLv3 и TLS
серверные шифры были более приоритетны, чем клиентские.
синтаксис:
|
ssl_protocols
[SSLv2 ]
[SSLv3 ]
[TLSv1 ]
[TLSv1.1 ]
[TLSv1.2 ];
|
умолчание:
|
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
|
контекст:
|
mail , server
|
Разрешает указанные протоколы.
Параметры TLSv1.1 и TLSv1.2 работают
только при использовании библиотеки OpenSSL версии 1.0.1 и выше.
синтаксис:
|
ssl_session_cache
off |
none |
[builtin [:размер ]]
[shared :название :размер ];
|
умолчание:
|
ssl_session_cache none;
|
контекст:
|
mail , server
|
Задаёт тип и размеры кэшей для хранения параметров сессий.
Тип кэша может быть следующим:
off
-
жёсткое запрещение использования кэша сессий:
nginx явно говорит клиенту, что сессии не могут использоваться повторно.
none
-
мягкое запрещение использования кэша сессий:
nginx говорит клиенту, что сессии могут использоваться повторно, но
на самом деле не хранит параметры сессии в кэше.
builtin
-
встроенный в OpenSSL кэш, используется в рамках только одного рабочего процесса.
Размер кэша задаётся в сессиях.
Если размер не задан, то он равен 20480 сессиям.
Использование встроенного кэша может вести к фрагментации памяти.
shared
-
кэш, разделяемый между всеми рабочими процессами.
Размер кэша задаётся в байтах, в 1 мегабайт может поместиться
около 4000 сессий.
У каждого разделяемого кэша должно быть произвольное название.
Кэш с одинаковым названием может использоваться в нескольких
серверах.
Можно использовать одновременно оба типа кэша, например:
ssl_session_cache builtin:1000 shared:SSL:10m;
однако использование только разделяемого кэша без встроенного должно
быть более эффективным.
синтаксис:
|
ssl_session_ticket_key файл ;
|
умолчание:
|
—
|
контекст:
|
mail , server
|
Эта директива появилась в версии 1.5.7.
Задаёт файл с секретным ключом, применяемым при шифровании и
расшифровании TLS session tickets.
Директива необходима, если один и тот же ключ нужно использовать
на нескольких серверах.
По умолчанию используется случайно сгенерированный ключ.
Если указано несколько ключей, то только первый ключ
используется для шифрования TLS session tickets.
Это позволяет настроить ротацию ключей, например:
ssl_session_ticket_key current.key;
ssl_session_ticket_key previous.key;
Файл должен содержать 48 байт случайных данных и может быть
создан следующей командой:
openssl rand 48 > ticket.key
синтаксис:
|
ssl_session_timeout время ;
|
умолчание:
|
ssl_session_timeout 5m;
|
контекст:
|
mail , server
|
Задаёт время, в течение которого клиент может повторно
использовать параметры сессии, хранящейся в кэше.
синтаксис:
|
starttls
on |
off |
only ;
|
умолчание:
|
starttls off;
|
контекст:
|
mail , server
|
on
-
разрешить использование команд
STLS для POP3
и STARTTLS для IMAP;
off
-
запретить использование команд
STLS
и STARTTLS ;
only
-
требовать предварительного перехода на TLS.
|