Mercurial > hg > nginx-site
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> |