# HG changeset patch # User Ruslan Ermilov # Date 1327950718 0 # Node ID f13435414ed8b30991333c5a85035298e87eaae6 # Parent 9cb58efe09e8926adcf9f769430624a64722779d Revision. diff --git a/xml/ru/docs/http/ngx_http_ssl_module.xml b/xml/ru/docs/http/ngx_http_ssl_module.xml --- a/xml/ru/docs/http/ngx_http_ssl_module.xml +++ b/xml/ru/docs/http/ngx_http_ssl_module.xml @@ -2,14 +2,15 @@ -
-Модуль ngx_http_ssl_module обеспечивает работу по протоколу HTTPS. +Модуль ngx_http_ssl_module обеспечивает работу +по протоколу HTTPS. Поддерживается проверка сертификатов клиентов с ограничением — если в файле, заданном директивой , указана цепочка сертификатов, то при проверке клиентских сертификатов @@ -17,17 +18,19 @@ nginx также будет использовать и сертификаты этих промежуточных CA. -По умолчанию модуль не собирается, нужно разрешить его сборку -при конфигурировании параметром +По умолчанию этот модуль не собирается, его сборку необходимо +разрешить с помощью конфигурационного параметра --with-http_ssl_module. + Для сборки и работы этого модуля нужна библиотека OpenSSL. +
-
+
Для уменьшения загрузки процессора рекомендуется @@ -56,23 +59,23 @@ nginx также будет использовать и сертификаты этих промежуточных CA. -worker_processes 2; +worker_processes 2; http { ... server { - listen 443; - keepalive_timeout 70; + listen 443; + keepalive_timeout 70; - ssl on; - ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; - 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; + ssl on; + ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; + 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; ... } @@ -82,15 +85,16 @@ http {
-
+
on | off off -http, server +http +server -Директива разрешает протокол HTTPS для данного виртуального сервера. +Разрешает протокол HTTPS для данного виртуального сервера. @@ -99,10 +103,11 @@ http { файл -http, server +http +server -Директива указывает файл с сертификатом в формате PEM +Указывает файл с сертификатом в формате PEM для данного виртуального сервера. Если вместе с основным сертификатом нужно указать промежуточные, то они должны находиться в этом же файле в следующем порядке — сначала @@ -112,25 +117,25 @@ http { Нужно иметь в виду, что из-за ограничения протокола HTTPS -виртуальные сервера должны слушать на разных IP-адресах: +виртуальные серверы должны слушать на разных IP-адресах: - server { - listen 192.168.1.1:443; - server_name one.example.com; - ssl_certificate /usr/local/nginx/conf/one.example.com.cert; - ... - } +server { + listen 192.168.1.1:443; + server_name one.example.com; + ssl_certificate /usr/local/nginx/conf/one.example.com.cert; + ... +} - server { - listen 192.168.1.2:443; - server_name two.example.com; - ssl_certificate /usr/local/nginx/conf/two.example.com.cert; - ... - } +server { + listen 192.168.1.2:443; + server_name two.example.com; + ssl_certificate /usr/local/nginx/conf/two.example.com.cert; + ... +} иначе для второго сайта будет выдаваться -сертификат -первого сервера. +сертификат первого сервера. @@ -139,40 +144,29 @@ http { файл -http, server +http +server -Директива указывает файл с секретным ключом в формате PEM +Указывает файл с секретным ключом в формате PEM для данного виртуального сервера. - -файл - -http, server - - -Директива указывает файл с сертификатами CA в формате PEM, используемыми для -для проверки клиентских сертификатов. - - - - - шифры HIGH:!ADH:!MD5 -http, server +http +server -Директива описывает разрешённые шифры. +Описывает разрешённые шифры. Шифры задаются в формате, поддерживаемом библиотекой OpenSSL, например: - ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; +ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; @@ -184,14 +178,30 @@ OpenSSL, например: + +файл + +http +server + + +Указывает файл с сертификатами CA в формате PEM, используемыми для +для проверки клиентских сертификатов. + + + + + файл -http, server +http +server +0.8.7 -Директива (0.8.7) указывает файл с отозванными сертификатами (CRL) -в формате PEM, используемыми для для проверки клиентских сертификатов. +Указывает файл с отозванными сертификатами (CRL) +в формате PEM, используемыми для проверки клиентских сертификатов. @@ -200,10 +210,12 @@ OpenSSL, например: файл -http, server +http +server +0.7.2 -Директива (0.7.2) указывает файл с параметрами для шифров с обменом EDH-ключами. +Указывает файл с параметрами для шифров с обменом EDH-ключами. @@ -212,10 +224,11 @@ OpenSSL, например: on | off off -http, server +http +server -Директива указывает, чтобы при использовании протоколов SSLv3 и TLS +Указывает, чтобы при использовании протоколов SSLv3 и TLS серверные шифры были более приоритетны, чем клиентские. @@ -230,10 +243,11 @@ OpenSSL, например: [TLSv1.1] [TLSv1.2] SSLv3 TLSv1 TLSv1.1 TLSv1.2 -http, server +http +server -Директива разрешает указанные протоколы. +Разрешает указанные протоколы. Параметры TLSv1.1 и TLSv1.2 работают только при использовании библиотеки OpenSSL версии 1.0.1 и выше. @@ -247,73 +261,51 @@ OpenSSL, например: - -on | off | optional -off -http, server - - -Директива разрешает проверку клиентских сертификатов. -Параметр optional (0.8.7+) запрашивает сертификат клиента -и проверяет его, если он предоставлен. -Результат проверки можно узнать в переменной $ssl_client_verify. - - - - - - -число -1 -http, server - - -Директива устанавливает глубину проверку в цепочке клиентских сертификатов. - - - - - - off | - none | - [builtin[:размер]] - [shared:название:размер] + off | + none | + [builtin[:размер]] + [shared:название:размер] none -http, server +http +server -Директива задаёт тип и размеры кэшей для хранения параметров сессий. +Задаёт тип и размеры кэшей для хранения параметров сессий. Тип кэша может быть следующим: - + - -off — жёсткое запрещение использования кэша сессий: +off + +жёсткое запрещение использования кэша сессий: nginx явно говорит клиенту, что сессии не могут использоваться повторно. - + - -none — мягкое запрещение использования кэша сессий: +none + +мягкое запрещение использования кэша сессий: nginx говорит клиенту, что сессии могут использоваться повторно, но на самом деле не используются. - + - -builtin — встроенный в OpenSSL кэш, используется в рамках только -одного рабочего процесса. Размер кэша задаётся в сессиях. +builtin + +встроенный в OpenSSL кэш, используется в рамках только одного рабочего процесса. +Размер кэша задаётся в сессиях. Если размер не задан, то он равен 20480 сессиям. Использование встроенного кэша может вести к фрагментации памяти. - + - -shared — разделяемый между всеми рабочими процессами. +shared + +разделяемый между всеми рабочими процессами. Размер кэша задаётся в байтах, в 1 мегабайт может поместиться около 4000 сессий. У каждого разделяемого кэша должно быть произвольное название. Кэш с одинаковым названием может использоваться в нескольких виртуальных серверах. - + @@ -321,7 +313,7 @@ shared — разделяемый между всеми рабочими процессами. Можно использовать одновременно оба типа кэша, например: -ssl_session_cache builtin:1000 shared:SSL:10m; +ssl_session_cache builtin:1000 shared:SSL:10m; однако использование только разделяемого кэша без встроенного должно быть более эффективным. @@ -333,100 +325,147 @@ ssl_session_cache builtin:1000 shared: время 5m -http, server +http +server -Директива задаёт время, в течение которого клиент может повторно +Задаёт время, в течение которого клиент может повторно использовать параметры сессии, хранящейся в кэше. + + + + on | off | + optional +off +http +server + + +Разрешает проверку клиентских сертификатов. +Параметр optional (0.8.7+) запрашивает сертификат клиента +и проверяет его, если он предоставлен. +Результат проверки можно узнать в переменной $ssl_client_verify. + + + + + + +число +1 +http +server + + +Устанавливает глубину проверки в цепочке клиентских сертификатов. + + + +
-
+
-Модуль ngx_http_ssl_module поддерживает несколько нестандартных кодов ошибок, -которые можно использовать для перенаправления с помощью директивы +Модуль ngx_http_ssl_module поддерживает несколько +нестандартных кодов ошибок, которые можно использовать для +перенаправления с помощью директивы : - + - -495 — при проверке клиентского сертификата произошла ошибка; - +495 + +при проверке клиентского сертификата произошла ошибка; + - -496 — клиент не предоставил требуемый сертификат; - +496 + +клиент не предоставил требуемый сертификат; + - -497 — обычный запрос был послан на порт HTTPS. - +497 + +обычный запрос был послан на порт HTTPS. + Перенаправление делается после того, как запрос полностью разобран -и доступны такие переменные, как $request_uri, $uri, $arg и прочие. +и доступны такие переменные, как $request_uri, +$uri, $args и прочие.
-
+
-Модуль ngx_http_ssl_module поддерживает несколько встроенных переменных: - +Модуль ngx_http_ssl_module поддерживает +несколько встроенных переменных: + - -$ssl_cipher возвращает строку используемых шифров для установленного -SSL-соединения; - +$ssl_cipher + +возвращает строку используемых шифров для установленного SSL-соединения; + - -$ssl_client_cert возвращает клиентский сертификат +$ssl_client_cert + +возвращает клиентский сертификат для установленного SSL-соединения в формате PEM перед каждой строкой которого, кроме первой, вставляется символ табуляции; предназначен для использования в директиве -. - +; + - -$ssl_client_raw_cert возвращает клиентский сертификат +$ssl_client_raw_cert + +возвращает клиентский сертификат для установленного SSL-соединения в формате PEM; - + - -$ssl_client_serial возвращает серийный номер клиентского сертификата +$ssl_client_serial + +возвращает серийный номер клиентского сертификата для установленного SSL-соединения; - + - -$ssl_client_s_dn возвращает строку subject DN клиентского сертификата +$ssl_client_s_dn + +возвращает строку “subject DN” клиентского сертификата для установленного SSL-соединения; - + - -$ssl_client_i_dn возвращает строку issuer DN клиентского сертификата -для установленного SSL-соединения. - +$ssl_client_i_dn + +возвращает строку “issuer DN” клиентского сертификата +для установленного SSL-соединения; + - -$ssl_client_verify возвращает результат проверки клиентского сертификата: -"SUCCESS", "FAILED" и, если серфтикат не был предоставлен - "NONE". - +$ssl_client_verify + +возвращает результат проверки клиентского сертификата: +“SUCCESS”, “FAILED” и, +если сертификат не был предоставлен — “NONE”; + - -$ssl_protocol возвращает протокол установленного SSL-соединения; - +$ssl_protocol + +возвращает протокол установленного SSL-соединения; + - -$ssl_session_id возвращает идентификатор сессии установленного SSL-соединения; - +$ssl_session_id + +возвращает идентификатор сессии установленного SSL-соединения. +