8

異なるドメイン名を提供する Web サーバーがありますが、割り当てられている IP アドレスは 1 つだけです。これは、Apache の仮想ホストで問題なく機能します。ここで、Web サイトに SSL 暗号化接続が必要です。仮想ホストごとに異なる SSL 証明書を設定するにはどうすればよいですか?

異なるホスト名に異なる IP を使用することは解決策になります。あまりエレガントではありませんが、可能です。しかし、異なる仮想ホストに対して異なる SSL 証明書を使用する方法を知りたいです。そこで、IP アドレスが 1 つだけのソリューションを探します。

4

6 に答える 6

8

更新: 2013

古いブラウザーが消えていくにつれて、SNI がようやく定着し始めたようです。ここに Apache SNI のドキュメントがあり、これをサポートするブラウザのチャートを含むSNI に関するウィキペディアの記事 があります。要するに、すべての主要なブラウザーは、サポートされているバージョンでそれをサポートしています。古いブラウザーのサポートが重要な場合は、それを考慮する必要があります。

------ 前回の回答 ------------

SSL ホストは一意の IP アドレスとポートの組み合わせに関連付ける必要があるため、仮想ホスティングを使用することはできません (または、少なくとも、IP アドレスごとに 1 つの SSL ホストしか持つことができません)。これは、Host: パラメータが http で送信される前に https が暗号化を開始するため、ホスト名からどの暗号を使用するかを判断できず、IP アドレスしかないためです。

HTTPにTLSコマンドがあり、ホスト名を要求した後にSSLを開始できる場合、これはばかげて簡単に修正できますが、誰も私に尋ねませんでした.

決定的な答えについては、http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts2を参照してください。

于 2008-11-09T17:16:59.317 に答える
4

与えられた回答のヒントとそれにコメントした後(特にMartinv.Löwisによる)、私はグーグルをして、RFC2817とRFC3546に関するこのWebサイトを見つけました。RFC3546は良い解決策のようです。

于 2008-11-09T18:01:46.123 に答える
2

私の知る限り、mod_ssl を使用して名前ベースの仮想ホストに異なる SSL 証明書を設定することはできません。詳細な理由はこちらで読むことができます。別の方法は、IP ベースの仮想ホストを使用することです (これはおそらく不可能であり、満足のいく解決策ではありません)。別の SSLCertificateFile ディレクティブを挿入するか、 mod_gnutls を使用してこの方法を試すことができます。

于 2008-11-09T17:25:13.483 に答える
1

vhostごとに個別のIP:ポートの組み合わせが必要になります。

RFC3546はまだ実現可能ではありません。IEはVistaで実行している場合にのみサポートし、最後にSafariでも管理されていないことを確認しました。

于 2008-11-10T00:31:39.533 に答える
1

DGM が言及したことはすべて真実ですが、mod_gnutls を含め、 TLS 拡張機能を使用して、すべての証明書に固有の IP アドレスの要件を回避しようとする試みがいくつかありました。いくつかの欠点がありますが、それらはあなたに受け入れられるかもしれません.

于 2008-11-10T14:04:12.937 に答える