回答:
仮想ホストとSSL / TLSで問題が実際に何であるかを説明する方法は良い考えだと思います。
HTTP経由でApacheサーバーに接続すると、一連のhttpヘッダーが一緒に送信されます。次のようになります。
GET /index.html HTTP/1.1
Host: www.nice-puppies.com
仮想ホスティングを使用している場合、Apacheはhostsフィールドを確認してから、適切なindex.htmlを取得します。問題は、SSL / TLSを追加するときです。サーバーは、httpリクエストを送信する前に暗号化を設定します。そのため、サーバーは、認証/暗号化が完了するまで、www.nice-puppies.comとwww.evil-haxxor.comのどちらにアクセスするかを知りません。サーバーは推測できません(間違った証明書を送信すると、厄介なエラーメッセージが表示されるため)。
1つの解決策は、ワイルドカード証明書(上記)です。これは、*。nice-puppies.comで有効です。そのようにすると、複数のドメインに同じ証明書を使用できますが、*。com証明書を取得することはできません(できますが、他のすべてのユーザーにとっては非常に悪いでしょう)。 HTTPSドメイン。
この問題の実際の解決策は「サーバー名表示」です。
http://en.wikipedia.org/wiki/Server_Name_Indication
サーバーやWebクライアントに展開され始めたばかりなので、今では実際に使用できるものではありませんが、数年後にはそれほど大きな問題にはならないことを願っています。
問題は、SSL証明書がホスト名ではなくIPアドレスにバインドされていることです。HTTPS要求のIPアドレスで接続が開始されると、最初のアクションは、サーバー証明書またはクライアント証明書、あるいはその両方を渡すことによってSSL通信を確立することです。接続ハンドシェイクのこの段階では、Apacheサーバーは、通過する要求の目的を知る方法がありません。これはHTTP(非SSL)トラフィックでは異なります。接続が確立された後、Apacheサーバーは、クライアントがHost
ヘッダーを送信するか、設定された最初の仮想ホストに渡す場合に使用する仮想ホスト構成を決定できるためです。
同じドメインに複数の仮想ホストがある場合、IPアドレスに単一のワイルドカード証明書を設定し、異なるサーバー名が定義された複数の仮想ホストを設定できます。ただし、それらのサーバー名が同じドメイン名の下にない場合、クライアントサーバーエラーが生成されます。これは、ワイルドカード証明書がそのドメイン名の下のすべてのホスト名に対して有効になるため、機能します。ドメイン名が異なる場合、別のIPアドレスが必要になります。そのIPアドレスに対して定義された最初の証明書が、クライアントの接続用に提示される証明書になるためです。
これは、単一のSSL証明書にSAN(サブジェクトの別名)として追加できます。私の経験では、組織のsll証明書を要求する必要がありました。私はglobalsignを使用しました。
実際、最新のソフトウェアでは、「SNI-Server Name Indication」と呼ばれる新機能を使用して、単一のIPアドレスで複数のHTTPSサイトを提供できます。
http://en.wikipedia.org/wiki/Server_Name_Indication
http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
私自身はまだこれを使用していませんが、内部サイトやイントラネットサイトには適しています。最新のブラウザのほとんどはSNIをサポートしています。IE6はSNIをサポートしていませんが、IE7はサポートしています。
(訂正:20100426-SNIはWindows XPではまったくサポートされていません。WindowsVista以降はSNIをサポートしています。http://msdn.microsoft.com/en-us/library/dd208005%の「セクション2.2.3」を参照してください。 28v = PROT.13%29.aspx#id8)。
UC証明書は間違いなく使用方法です:http : //www.sslshopper.com/unified-communications-uc-ssl-certificates.html
同じIPに2つの証明書を追加しようとすると、最初に読み取られた証明書のみがすべての場所で使用されます。1つのIP-1つのSSL証明書。
同じIPでより多くのSSL証明書を取得したい場合は、複数ドメイン(いわゆるUCC- @ godaddyをチェックアウト)またはワイルドカード(より高価な)証明書を取得することを検討してください。