Mercurial > hg > nginx-site
comparison xml/ja/docs/http/configuring_https_servers.xml @ 121:49443032011c
Unified <section> syntax for "article" and "module" documents.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Thu, 20 Oct 2011 20:27:51 +0000 |
parents | 9d544687d02c |
children | 7db449e89e92 |
comparison
equal
deleted
inserted
replaced
120:da8bd4d2290f | 121:49443032011c |
---|---|
39 </para> | 39 </para> |
40 | 40 |
41 </section> | 41 </section> |
42 | 42 |
43 | 43 |
44 <section name="optimization" title="HTTPS サーバの最適化"> | 44 <section id="optimization" name="HTTPS サーバの最適化"> |
45 | 45 |
46 <para> | 46 <para> |
47 SSL の工程は CPU リソースを余計に消費します。マルチプロセッサシステムでは(利用できる CPU コアの数よりも大きい数の)複数のワーカープロセスを走らせるといいでしょう。最も CPU に負荷がかかる工程は SSL ハンドシェイクです。クライアント毎のこの工程数を最小化するには2つの方法があります。最初の方法はキープアライブ接続を有効にして、ひとつの接続経由で複数のリクエストを送るようにする方法です。二つ目の方法は SSL セッションパラメータを再利用して、並行かつ順次接続のための SSL ハンドシェイクを避ける方法です。セッションはワーカー間で共有される SSL セッションキャッシュに保持され、<dirname>ssl_session_cache</dirname> ディレクティブで設定されています。1メガバイトのキャッシュには約4000のセッションが含まれます。キャッシュのデフォルトタイムアウトは5分です。この値は <dirname>ssl_session_timeout</dirname> ディレクティブを使用して増やすことができます。次の例は10Mの共有セッションキャッシュをもったクアッドコアシステムに最適化された設定例です: | 47 SSL の工程は CPU リソースを余計に消費します。マルチプロセッサシステムでは(利用できる CPU コアの数よりも大きい数の)複数のワーカープロセスを走らせるといいでしょう。最も CPU に負荷がかかる工程は SSL ハンドシェイクです。クライアント毎のこの工程数を最小化するには2つの方法があります。最初の方法はキープアライブ接続を有効にして、ひとつの接続経由で複数のリクエストを送るようにする方法です。二つ目の方法は SSL セッションパラメータを再利用して、並行かつ順次接続のための SSL ハンドシェイクを避ける方法です。セッションはワーカー間で共有される SSL セッションキャッシュに保持され、<dirname>ssl_session_cache</dirname> ディレクティブで設定されています。1メガバイトのキャッシュには約4000のセッションが含まれます。キャッシュのデフォルトタイムアウトは5分です。この値は <dirname>ssl_session_timeout</dirname> ディレクティブを使用して増やすことができます。次の例は10Mの共有セッションキャッシュをもったクアッドコアシステムに最適化された設定例です: |
48 | 48 |
49 | 49 |
69 </para> | 69 </para> |
70 | 70 |
71 </section> | 71 </section> |
72 | 72 |
73 | 73 |
74 <section name="chains" title="SSL 連鎖証明書"> | 74 <section id="chains" name="SSL 連鎖証明書"> |
75 | 75 |
76 <para> | 76 <para> |
77 ブラウザによっては有名な認証局によって署名された証明書にエラーをだすことがあります。その一方でその証明書を他のブラウザでは問題なく受け入れることもあります。これは発行している認証局が、有名で信用されている認証局の認証基盤には含まれない特定のブラウザで配布されている中間証明書を使ったサーバ証明書に署名しているからです。このケースでは、認証局は署名されたサーバ証明書に連結されているはずの連鎖証明書のバンドルを提供しています。サーバ証明書は、かならず結合されたファイル内の連鎖証明書に存在している必要があります: | 77 ブラウザによっては有名な認証局によって署名された証明書にエラーをだすことがあります。その一方でその証明書を他のブラウザでは問題なく受け入れることもあります。これは発行している認証局が、有名で信用されている認証局の認証基盤には含まれない特定のブラウザで配布されている中間証明書を使ったサーバ証明書に署名しているからです。このケースでは、認証局は署名されたサーバ証明書に連結されているはずの連鎖証明書のバンドルを提供しています。サーバ証明書は、かならず結合されたファイル内の連鎖証明書に存在している必要があります: |
78 | 78 |
79 <programlisting> | 79 <programlisting> |
141 </para> | 141 </para> |
142 | 142 |
143 </section> | 143 </section> |
144 | 144 |
145 | 145 |
146 <section name="single_http_https_server" title="単一の HTTP/HTTPS サーバ"> | 146 <section id="single_http_https_server" name="単一の HTTP/HTTPS サーバ"> |
147 | 147 |
148 <para> | 148 <para> |
149 最初の段階から HTTP と HTTPS プロトコル用にサーバを分けて設定するのは優れた実践です。現時点では両者の機能性としては等しいかもしれませんが、将来的に大きな変更があるかもしれず、統合されたサーバの使用が問題になるかもしれません。とはいえ、HTTP と HTTPS のサーバが等しく、将来のことを考えたくないのなら、ディレクティブ <dirname>ssl on</dirname> を削除して *:443 ポートに <dirname>ssl</dirname> パラメータを追加することによって HTTP と HTTPS リクエストの両者を扱う単一のサーバを設定することができます: | 149 最初の段階から HTTP と HTTPS プロトコル用にサーバを分けて設定するのは優れた実践です。現時点では両者の機能性としては等しいかもしれませんが、将来的に大きな変更があるかもしれず、統合されたサーバの使用が問題になるかもしれません。とはいえ、HTTP と HTTPS のサーバが等しく、将来のことを考えたくないのなら、ディレクティブ <dirname>ssl on</dirname> を削除して *:443 ポートに <dirname>ssl</dirname> パラメータを追加することによって HTTP と HTTPS リクエストの両者を扱う単一のサーバを設定することができます: |
150 | 150 |
151 <programlisting> | 151 <programlisting> |
168 </para> | 168 </para> |
169 | 169 |
170 </section> | 170 </section> |
171 | 171 |
172 | 172 |
173 <section name="name_based_https_servers" title="名前ベースの HTTPS サーバ"> | 173 <section id="name_based_https_servers" name="名前ベースの HTTPS サーバ"> |
174 | 174 |
175 <para> | 175 <para> |
176 単一の IP アドレスを2つ以上の HTTPS サーバで待ち受けるように設定するとよく発生する問題があります: | 176 単一の IP アドレスを2つ以上の HTTPS サーバで待ち受けるように設定するとよく発生する問題があります: |
177 | 177 |
178 <programlisting> | 178 <programlisting> |
219 </para> | 219 </para> |
220 | 220 |
221 </section> | 221 </section> |
222 | 222 |
223 | 223 |
224 <section name="certificate_with_several_names" | 224 <section id="certificate_with_several_names" |
225 title="複数サーバ名をもつ SSL 証明書"> | 225 name="複数サーバ名をもつ SSL 証明書"> |
226 | 226 |
227 <para> | 227 <para> |
228 単一の IP アドレスを複数の HTTPS サーバ間で共有する方法は他にもありますが、どれも欠点があります。ひとつは、SubjectAltName フィールドに複数サーバ名(例えば、<url>www.nginx.com</url> と <url>www.nginx.org</url>)をもつ単一の証明書を使用する方法です。しかし、SubjectAltName の長さには制限があります。 | 228 単一の IP アドレスを複数の HTTPS サーバ間で共有する方法は他にもありますが、どれも欠点があります。ひとつは、SubjectAltName フィールドに複数サーバ名(例えば、<url>www.nginx.com</url> と <url>www.nginx.org</url>)をもつ単一の証明書を使用する方法です。しかし、SubjectAltName の長さには制限があります。 |
229 </para> | 229 </para> |
230 | 230 |
256 </para> | 256 </para> |
257 | 257 |
258 </section> | 258 </section> |
259 | 259 |
260 | 260 |
261 <section name="sni" title="サーバ名指示(Server Name Indication – SNI)"> | 261 <section id="sni" name="サーバ名指示(Server Name Indication – SNI)"> |
262 | 262 |
263 <para> | 263 <para> |
264 単一の IP アドレス上で複数の HTTPS サーバを動かすときのさらに包括的な解決方法として <a href="http://en.wikipedia.org/wiki/Server_Name_Indication">TLSv1.1 Server Name Indication extension(サーバ名指示拡張)</a> (SNI, RFC3546) があります。これは、ブラウザが SSL ハンドシェイクの間にリクエストされたサーバ名を渡せるようにするもので、それによりサーバはその接続でどの証明書を使用するべきかが分かります。しかし、SNI は限られたブラウザしかサポートしていません。現時点では次のブラウザのバージョン以降のものがサポートされています: | 264 単一の IP アドレス上で複数の HTTPS サーバを動かすときのさらに包括的な解決方法として <a href="http://en.wikipedia.org/wiki/Server_Name_Indication">TLSv1.1 Server Name Indication extension(サーバ名指示拡張)</a> (SNI, RFC3546) があります。これは、ブラウザが SSL ハンドシェイクの間にリクエストされたサーバ名を渡せるようにするもので、それによりサーバはその接続でどの証明書を使用するべきかが分かります。しかし、SNI は限られたブラウザしかサポートしていません。現時点では次のブラウザのバージョン以降のものがサポートされています: |
265 </para> | 265 </para> |
266 | 266 |
308 </para> | 308 </para> |
309 | 309 |
310 </section> | 310 </section> |
311 | 311 |
312 | 312 |
313 <section name="compatibility" title="Compatibility"> | 313 <section id="compatibility" name="Compatibility"> |
314 | 314 |
315 <para> | 315 <para> |
316 <list> | 316 <list> |
317 | 317 |
318 <item> | 318 <item> |