comparison xml/ru/docs/http/configuring_https_servers.xml @ 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 2ceaef0e84a1
children 4fecf0715bbf
comparison
equal deleted inserted replaced
800:015981070efd 801:b95a6d779c89
6 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> 6 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
7 7
8 <article name="Настройка HTTPS-серверов" 8 <article name="Настройка HTTPS-серверов"
9 link="/ru/docs/http/configuring_https_servers.html" 9 link="/ru/docs/http/configuring_https_servers.html"
10 lang="ru" 10 lang="ru"
11 rev="4" 11 rev="5"
12 author="Игорь Сысоев" 12 author="Игорь Сысоев"
13 editor="Brian Mercer"> 13 editor="Brian Mercer">
14 14
15 <section> 15 <section>
16 16
17 <para> 17 <para>
18 Чтобы настроить HTTPS-сервер, необходимо включить протокол SSL 18 Чтобы настроить HTTPS-сервер, необходимо включить параметр
19 в блоке server, а также указать местоположение файлов с 19 <literal>ssl</literal> на
20 <link doc="ngx_http_core_module.xml" id="listen">слушающих сокетах</link>
21 в блоке <link doc="ngx_http_core_module.xml" id="server"/>,
22 а также указать местоположение файлов с
20 сертификатом сервера и секретным ключом: 23 сертификатом сервера и секретным ключом:
21 24
22 <programlisting> 25 <programlisting>
23 server { 26 server {
24 listen 443; 27 listen 443 <b>ssl</b>;
25 server_name www.example.com; 28 server_name www.example.com;
26 ssl <b>on</b>;
27 ssl_certificate <b>www.example.com.crt</b>; 29 ssl_certificate <b>www.example.com.crt</b>;
28 ssl_certificate_key <b>www.example.com.key</b>; 30 ssl_certificate_key <b>www.example.com.key</b>;
29 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; 31 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
30 ssl_ciphers HIGH:!aNULL:!MD5; 32 ssl_ciphers HIGH:!aNULL:!MD5;
31 ... 33 ...
105 http { 107 http {
106 <b>ssl_session_cache shared:SSL:10m</b>; 108 <b>ssl_session_cache shared:SSL:10m</b>;
107 <b>ssl_session_timeout 10m</b>; 109 <b>ssl_session_timeout 10m</b>;
108 110
109 server { 111 server {
110 listen 443; 112 listen 443 ssl;
111 server_name www.example.com; 113 server_name www.example.com;
112 <b>keepalive_timeout 70</b>; 114 <b>keepalive_timeout 70</b>;
113 115
114 ssl on;
115 ssl_certificate www.example.com.crt; 116 ssl_certificate www.example.com.crt;
116 ssl_certificate_key www.example.com.key; 117 ssl_certificate_key www.example.com.key;
117 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; 118 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
118 ssl_ciphers HIGH:!aNULL:!MD5; 119 ssl_ciphers HIGH:!aNULL:!MD5;
119 ... 120 ...
145 Полученный файл следует указать в директиве 146 Полученный файл следует указать в директиве
146 <link doc="ngx_http_ssl_module.xml" id="ssl_certificate"/>: 147 <link doc="ngx_http_ssl_module.xml" id="ssl_certificate"/>:
147 148
148 <programlisting> 149 <programlisting>
149 server { 150 server {
150 listen 443; 151 listen 443 ssl;
151 server_name www.example.com; 152 server_name www.example.com;
152 ssl on;
153 ssl_certificate www.example.com.chained.crt; 153 ssl_certificate www.example.com.chained.crt;
154 ssl_certificate_key www.example.com.key; 154 ssl_certificate_key www.example.com.key;
155 ... 155 ...
156 } 156 }
157 </programlisting> 157 </programlisting>
221 221
222 222
223 <section id="single_http_https_server" name="Единый HTTP/HTTPS сервер"> 223 <section id="single_http_https_server" name="Единый HTTP/HTTPS сервер">
224 224
225 <para> 225 <para>
226 Если серверы HTTP и HTTPS идентичны, 226 Можно настроить единый сервер, который обслуживает как HTTP-,
227 можно настроить единый сервер, который обслуживает как HTTP-, 227 так и HTTPS-запросы:
228 так и HTTPS-запросы.
229 Для этого следует исключить директиву “<literal>ssl on</literal>”
230 и добавить параметр <literal>ssl</literal> к порту *:443:
231 228
232 <programlisting> 229 <programlisting>
233 server { 230 server {
234 listen 80; 231 listen 80;
235 listen 443 ssl; 232 listen 443 ssl;
239 ... 236 ...
240 } 237 }
241 </programlisting> 238 </programlisting>
242 239
243 <note> 240 <note>
244 До версии 0.8.21 nginx допускал указание параметра <literal>ssl</literal> 241 До версии 0.7.14 SSL нельзя было включить выборочно для
245 на слушающем сокете только совместно с параметром <literal>default</literal>: 242 отдельных слущающих сокетов, как показано выше.
246 <programlisting> 243 SSL можно было включить только для всего сервера целиком,
247 listen 443 default ssl; 244 с помощью директивы <link doc="ngx_http_ssl_module.xml" id="ssl"/>,
248 </programlisting> 245 что не позволяло настроить единый HTTP/HTTPS сервер.
246 Для решения этой задачи был добавлен
247 параметр <literal>ssl</literal>
248 директивы <link doc="ngx_http_core_module.xml" id="listen"/>.
249 Поэтому использование
250 директивы <link doc="ngx_http_ssl_module.xml" id="ssl"/>
251 в современных версиях не рекомендуется.
249 </note> 252 </note>
250 </para> 253 </para>
251 254
252 </section> 255 </section>
253 256
258 Типичная проблема возникает при настройке двух и более серверов HTTPS, 261 Типичная проблема возникает при настройке двух и более серверов HTTPS,
259 слушающих на одном и том же IP-адресе: 262 слушающих на одном и том же IP-адресе:
260 263
261 <programlisting> 264 <programlisting>
262 server { 265 server {
263 listen 443; 266 listen 443 ssl;
264 server_name www.example.com; 267 server_name www.example.com;
265 ssl on;
266 ssl_certificate www.example.com.crt; 268 ssl_certificate www.example.com.crt;
267 ... 269 ...
268 } 270 }
269 271
270 server { 272 server {
271 listen 443; 273 listen 443 ssl;
272 server_name www.example.org; 274 server_name www.example.org;
273 ssl on;
274 ssl_certificate www.example.org.crt; 275 ssl_certificate www.example.org.crt;
275 ... 276 ...
276 } 277 }
277 </programlisting> 278 </programlisting>
278 279
288 Наиболее старым и надёжным способом решения этой проблемы 289 Наиболее старым и надёжным способом решения этой проблемы
289 является назначение каждому HTTPS-серверу своего IP-адреса: 290 является назначение каждому HTTPS-серверу своего IP-адреса:
290 291
291 <programlisting> 292 <programlisting>
292 server { 293 server {
293 listen 192.168.1.1:443; 294 listen 192.168.1.1:443 ssl;
294 server_name www.example.com; 295 server_name www.example.com;
295 ssl on;
296 ssl_certificate www.example.com.crt; 296 ssl_certificate www.example.com.crt;
297 ... 297 ...
298 } 298 }
299 299
300 server { 300 server {
301 listen 192.168.1.2:443; 301 listen 192.168.1.2:443 ssl;
302 server_name www.example.org; 302 server_name www.example.org;
303 ssl on;
304 ssl_certificate www.example.org.crt; 303 ssl_certificate www.example.org.crt;
305 ... 304 ...
306 } 305 }
307 </programlisting> 306 </programlisting>
308 </para> 307 </para>
309
310 </section>
311 308
312 309
313 <section id="certificate_with_several_names" 310 <section id="certificate_with_several_names"
314 name="SSL-сертификат с несколькими именами"> 311 name="SSL-сертификат с несколькими именами">
315 312
344 <programlisting> 341 <programlisting>
345 ssl_certificate common.crt; 342 ssl_certificate common.crt;
346 ssl_certificate_key common.key; 343 ssl_certificate_key common.key;
347 344
348 server { 345 server {
349 listen 443; 346 listen 443 ssl;
350 server_name www.example.com; 347 server_name www.example.com;
351 ssl on; 348 ...
352 ... 349 }
353 } 350
354 351 server {
355 server { 352 listen 443 ssl;
356 listen 443;
357 server_name www.example.org; 353 server_name www.example.org;
358 ssl on;
359 ... 354 ...
360 } 355 }
361 </programlisting> 356 </programlisting>
362 </para> 357 </para>
363 358
437 </programlisting> 432 </programlisting>
438 </para> 433 </para>
439 434
440 </section> 435 </section>
441 436
437 </section>
438
442 439
443 <section id="compatibility" name="Совместимость"> 440 <section id="compatibility" name="Совместимость">
444 441
445 <para> 442 <para>
446 <list type="bullet"> 443 <list type="bullet">
452 449
453 <listitem> 450 <listitem>
454 Параметр <literal>ssl</literal> директивы 451 Параметр <literal>ssl</literal> директивы
455 <link doc="ngx_http_core_module.xml" id="listen"/> 452 <link doc="ngx_http_core_module.xml" id="listen"/>
456 поддерживается начиная с версии 0.7.14. 453 поддерживается начиная с версии 0.7.14.
454 До версии 0.8.21 его можно было указывать только совместно с
455 параметром <literal>default</literal>.
457 </listitem> 456 </listitem>
458 457
459 <listitem> 458 <listitem>
460 SNI поддерживается начиная с версии 0.5.32. 459 SNI поддерживается начиная с версии 0.5.32.
461 </listitem> 460 </listitem>