changeset 801:b95a6d779c89

Documented that "listen ... ssl" is preferred over "ssl on".
author Ruslan Ermilov <ru@nginx.com>
date Thu, 27 Dec 2012 17:16:39 +0000
parents 015981070efd
children 8af7fe0794b0
files xml/en/docs/http/configuring_https_servers.xml xml/en/docs/http/ngx_http_ssl_module.xml xml/ru/docs/http/configuring_https_servers.xml xml/ru/docs/http/ngx_http_ssl_module.xml
diffstat 4 files changed, 79 insertions(+), 72 deletions(-) [+]
line wrap: on
line diff
--- a/xml/en/docs/http/configuring_https_servers.xml	Thu Dec 27 13:23:32 2012 +0000
+++ b/xml/en/docs/http/configuring_https_servers.xml	Thu Dec 27 17:16:39 2012 +0000
@@ -8,22 +8,24 @@
 <article name="Configuring HTTPS servers"
          link="/en/docs/http/configuring_https_servers.html"
          lang="en"
-         rev="4"
+         rev="5"
          author="Igor Sysoev"
          editor="Brian Mercer">
 
 <section>
 
 <para>
-To configure an HTTPS server, the SSL protocol must be enabled
-in the server block, and the locations of the server certificate
+To configure an HTTPS server, the <literal>ssl</literal> parameter
+must be enabled on
+<link doc="ngx_http_core_module.xml" id="listen">listening sockets</link>
+in the <link doc="ngx_http_core_module.xml" id="server"/> block,
+and the locations of the server certificate
 and private key files should be specified:
 
 <programlisting>
 server {
-    listen              443;
+    listen              443 <b>ssl</b>;
     server_name         www.example.com;
-    ssl                 <b>on</b>;
     ssl_certificate     <b>www.example.com.crt</b>;
     ssl_certificate_key <b>www.example.com.key</b>;
     ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
@@ -107,11 +109,10 @@
     <b>ssl_session_timeout 10m</b>;
 
     server {
-        listen              443;
+        listen              443 ssl;
         server_name         www.example.com;
         <b>keepalive_timeout   70</b>;
 
-        ssl                 on;
         ssl_certificate     www.example.com.crt;
         ssl_certificate_key www.example.com.key;
         ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
@@ -147,9 +148,8 @@
 
 <programlisting>
 server {
-    listen              443;
+    listen              443 ssl;
     server_name         www.example.com;
-    ssl                 on;
     ssl_certificate     www.example.com.chained.crt;
     ssl_certificate_key www.example.com.key;
     ...
@@ -223,10 +223,8 @@
 <section id="single_http_https_server" name="A single HTTP/HTTPS server">
 
 <para>
-If HTTP and HTTPS servers are equal,
-a single server that handles both HTTP and HTTPS requests may be configured
-by deleting the directive “<literal>ssl on</literal>”
-and adding the <literal>ssl</literal> parameter for *:443 port:
+It is possible to configure a single server that handles both HTTP
+and HTTPS requests:
 
 <programlisting>
 server {
@@ -240,11 +238,17 @@
 </programlisting>
 
 <note>
-Prior to 0.8.21, nginx only allows the <literal>ssl</literal> parameter
-to be set on listen sockets with the <literal>default</literal> parameter:
-<programlisting>
-listen 443 default ssl;
-</programlisting>
+Prior to 0.7.14 SSL could not be enabled selectively for
+individual listening sockets, as shown above.
+SSL could only be enabled for the entire server using the
+<link doc="ngx_http_ssl_module.xml" id="ssl"/> directive,
+making it impossible to set up a single HTTP/HTTPS server.
+The <literal>ssl</literal> parameter of the
+<link doc="ngx_http_core_module.xml" id="listen"/> directive
+was added to solve this issue.
+The use of the
+<link doc="ngx_http_ssl_module.xml" id="ssl"/> directive
+in modern versions is thus discouraged.
 </note>
 </para>
 
@@ -259,17 +263,15 @@
 
 <programlisting>
 server {
-    listen          443;
+    listen          443 ssl;
     server_name     www.example.com;
-    ssl             on;
     ssl_certificate www.example.com.crt;
     ...
 }
 
 server {
-    listen          443;
+    listen          443 ssl;
     server_name     www.example.org;
-    ssl             on;
     ssl_certificate www.example.org.crt;
     ...
 }
@@ -289,25 +291,21 @@
 
 <programlisting>
 server {
-    listen          192.168.1.1:443;
+    listen          192.168.1.1:443 ssl;
     server_name     www.example.com;
-    ssl             on;
     ssl_certificate www.example.com.crt;
     ...
 }
 
 server {
-    listen          192.168.1.2:443;
+    listen          192.168.1.2:443 ssl;
     server_name     www.example.org;
-    ssl             on;
     ssl_certificate www.example.org.crt;
     ...
 }
 </programlisting>
 </para>
 
-</section>
-
 
 <section id="certificate_with_several_names"
          name="An SSL certificate with several names">
@@ -345,16 +343,14 @@
 ssl_certificate_key common.key;
 
 server {
-    listen          443;
+    listen          443 ssl;
     server_name     www.example.com;
-    ssl             on;
     ...
 }
 
 server {
-    listen          443;
+    listen          443 ssl;
     server_name     www.example.org;
-    ssl             on;
     ...
 }
 </programlisting>
@@ -438,6 +434,8 @@
 
 </section>
 
+</section>
+
 
 <section id="compatibility" name="Compatibility">
 
@@ -453,6 +451,8 @@
 The <literal>ssl</literal> parameter of the
 <link doc="ngx_http_core_module.xml" id="listen"/>
 directive has been supported since 0.7.14.
+Prior to 0.8.21 it could only be specified along with the
+<literal>default</literal> parameter.
 </listitem>
 
 <listitem>
--- a/xml/en/docs/http/ngx_http_ssl_module.xml	Thu Dec 27 13:23:32 2012 +0000
+++ b/xml/en/docs/http/ngx_http_ssl_module.xml	Thu Dec 27 17:16:39 2012 +0000
@@ -10,7 +10,7 @@
 <module name="Module ngx_http_ssl_module"
         link="/en/docs/http/ngx_http_ssl_module.html"
         lang="en"
-        rev="5">
+        rev="6">
 
 <section id="summary">
 
@@ -68,10 +68,9 @@
     ...
 
     server {
-        listen              443;
+        listen              443 ssl;
         <emphasis>keepalive_timeout   70;</emphasis>
 
-        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;
@@ -97,6 +96,11 @@
 
 <para>
 Enables the HTTPS protocol for the given virtual server.
+<note>
+It is recommended to use the <literal>ssl</literal> parameter of the
+<link doc="ngx_http_core_module.xml" id="listen"/> directive instead
+of this directive.
+</note>
 </para>
 
 </directive>
--- a/xml/ru/docs/http/configuring_https_servers.xml	Thu Dec 27 13:23:32 2012 +0000
+++ b/xml/ru/docs/http/configuring_https_servers.xml	Thu Dec 27 17:16:39 2012 +0000
@@ -8,22 +8,24 @@
 <article name="Настройка HTTPS-серверов"
          link="/ru/docs/http/configuring_https_servers.html"
          lang="ru"
-         rev="4"
+         rev="5"
          author="Игорь Сысоев"
          editor="Brian Mercer">
 
 <section>
 
 <para>
-Чтобы настроить HTTPS-сервер, необходимо включить протокол SSL
-в блоке server, а также указать местоположение файлов с
+Чтобы настроить HTTPS-сервер, необходимо включить параметр
+<literal>ssl</literal> на
+<link doc="ngx_http_core_module.xml" id="listen">слушающих сокетах</link>
+в блоке <link doc="ngx_http_core_module.xml" id="server"/>,
+а также указать местоположение файлов с
 сертификатом сервера и секретным ключом:
 
 <programlisting>
 server {
-    listen              443;
+    listen              443 <b>ssl</b>;
     server_name         www.example.com;
-    ssl                 <b>on</b>;
     ssl_certificate     <b>www.example.com.crt</b>;
     ssl_certificate_key <b>www.example.com.key</b>;
     ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
@@ -107,11 +109,10 @@
     <b>ssl_session_timeout 10m</b>;
 
     server {
-        listen              443;
+        listen              443 ssl;
         server_name         www.example.com;
         <b>keepalive_timeout   70</b>;
 
-        ssl                 on;
         ssl_certificate     www.example.com.crt;
         ssl_certificate_key www.example.com.key;
         ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
@@ -147,9 +148,8 @@
 
 <programlisting>
 server {
-    listen              443;
+    listen              443 ssl;
     server_name         www.example.com;
-    ssl                 on;
     ssl_certificate     www.example.com.chained.crt;
     ssl_certificate_key www.example.com.key;
     ...
@@ -223,11 +223,8 @@
 <section id="single_http_https_server" name="Единый HTTP/HTTPS сервер">
 
 <para>
-Если серверы HTTP и HTTPS идентичны,
-можно настроить единый сервер, который обслуживает как HTTP-,
-так и HTTPS-запросы.
-Для этого следует исключить директиву “<literal>ssl on</literal>”
-и добавить параметр <literal>ssl</literal> к порту *:443:
+Можно настроить единый сервер, который обслуживает как HTTP-,
+так и HTTPS-запросы:
 
 <programlisting>
 server {
@@ -241,11 +238,17 @@
 </programlisting>
 
 <note>
-До версии 0.8.21 nginx допускал указание параметра <literal>ssl</literal>
-на слушающем сокете только совместно с параметром <literal>default</literal>:
-<programlisting>
-listen  443  default  ssl;
-</programlisting>
+До версии 0.7.14 SSL нельзя было включить выборочно для
+отдельных слущающих сокетов, как показано выше.
+SSL можно было включить только для всего сервера целиком,
+с помощью директивы <link doc="ngx_http_ssl_module.xml" id="ssl"/>,
+что не позволяло настроить единый HTTP/HTTPS сервер.
+Для решения этой задачи был добавлен
+параметр <literal>ssl</literal>
+директивы <link doc="ngx_http_core_module.xml" id="listen"/>.
+Поэтому использование
+директивы <link doc="ngx_http_ssl_module.xml" id="ssl"/>
+в современных версиях не рекомендуется.
 </note>
 </para>
 
@@ -260,17 +263,15 @@
 
 <programlisting>
 server {
-    listen          443;
+    listen          443 ssl;
     server_name     www.example.com;
-    ssl             on;
     ssl_certificate www.example.com.crt;
     ...
 }
 
 server {
-    listen          443;
+    listen          443 ssl;
     server_name     www.example.org;
-    ssl             on;
     ssl_certificate www.example.org.crt;
     ...
 }
@@ -290,25 +291,21 @@
 
 <programlisting>
 server {
-    listen          192.168.1.1:443;
+    listen          192.168.1.1:443 ssl;
     server_name     www.example.com;
-    ssl             on;
     ssl_certificate www.example.com.crt;
     ...
 }
 
 server {
-    listen          192.168.1.2:443;
+    listen          192.168.1.2:443 ssl;
     server_name     www.example.org;
-    ssl             on;
     ssl_certificate www.example.org.crt;
     ...
 }
 </programlisting>
 </para>
 
-</section>
-
 
 <section id="certificate_with_several_names"
          name="SSL-сертификат с несколькими именами">
@@ -346,16 +343,14 @@
 ssl_certificate_key common.key;
 
 server {
-    listen          443;
+    listen          443 ssl;
     server_name     www.example.com;
-    ssl             on;
     ...
 }
 
 server {
-    listen          443;
+    listen          443 ssl;
     server_name     www.example.org;
-    ssl             on;
     ...
 }
 </programlisting>
@@ -439,6 +434,8 @@
 
 </section>
 
+</section>
+
 
 <section id="compatibility" name="Совместимость">
 
@@ -454,6 +451,8 @@
 Параметр <literal>ssl</literal> директивы
 <link doc="ngx_http_core_module.xml" id="listen"/>
 поддерживается начиная с версии 0.7.14.
+До версии 0.8.21 его можно было указывать только совместно с
+параметром <literal>default</literal>.
 </listitem>
 
 <listitem>
--- a/xml/ru/docs/http/ngx_http_ssl_module.xml	Thu Dec 27 13:23:32 2012 +0000
+++ b/xml/ru/docs/http/ngx_http_ssl_module.xml	Thu Dec 27 17:16:39 2012 +0000
@@ -10,7 +10,7 @@
 <module name="Модуль ngx_http_ssl_module"
         link="/ru/docs/http/ngx_http_ssl_module.html"
         lang="ru"
-        rev="5">
+        rev="6">
 
 <section id="summary">
 
@@ -68,10 +68,9 @@
     ...
 
     server {
-        listen              443;
+        listen              443 ssl;
         <emphasis>keepalive_timeout   70;</emphasis>
 
-        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;
@@ -96,7 +95,12 @@
 <context>server</context>
 
 <para>
-Разрешает протокол HTTPS для данного виртуального сервера.
+Включает протокол HTTPS для данного виртуального сервера.
+<note>
+Вместо этой директивы рекомендуется использовать параметр
+<literal>ssl</literal> директивы
+<link doc="ngx_http_core_module.xml" id="listen"/>.
+</note>
 </para>
 
 </directive>