web-dev-qa-db-ja.com

同じIPでSSLを使用する複数のドメイン

SSLのセットアップには専用IPが必要であることを知っています。 IPを共有するドメインにSSLを追加するとどうなりますか? (名前仮想ホスト)

24
nitins

仮想ホストとSSL/TLSの実際の問題を説明する方法は良い考えだと思います。

HTTPを介してApacheサーバーに接続すると、一連のhttpヘッダーが送信されます。彼らはこのように見えます:

GET /index.html HTTP/1.1
 Host: www.Nice-puppies.com

仮想ホスティングを使用している場合、Apacheはホストフィールドを調べ、適切なindex.htmlを取得します。問題は、SSL/TLSを追加するときです。サーバーは、httpリクエストを送信する前に暗号化を設定します。そのため、サーバーは、認証/暗号化が完了するまで、www.Nice-puppies.comまたはwww.evil-haxxor.comにアクセスするかどうかを認識しません。サーバーは推測できません(間違った証明書を送信すると、厄介なエラーメッセージが表示されるため)。

1つの解決策は、*。Nice-puppies.comで有効なワイルドカード証明書(前述)です。そうすれば、複数のドメインに同じ証明書を使用できますが、*。com証明書を取得することはできません(そうすることはできますが、他のすべての人にとっては非常に悪いことになります)。 HTTPSドメイン。

28
pehrs

この問題の実際の解決策は「サーバー名表示」です。

http://en.wikipedia.org/wiki/Server_Name_Indication

これはサーバーとWebクライアントにのみロールアウトされ始めているので、今は実際に使用できるものではありませんが、数年後にはこれがそれほど大きな問題にならないことを願っています。

8
DM

問題は、SSL証明書がホスト名ではなくIPアドレスにバインドされていることです。 HTTPS要求のIPアドレスで接続が確立されると、最初のアクションはサーバー証明書またはクライアント証明書、あるいはその両方を渡すことによってSSL通信を確立することです。接続ハンドシェイクのこの段階では、Apacheサーバーは、これから行われるリクエストの目的を知る方法がありません。これはHTTP(非SSL)トラフィックの場合とは異なります。接続が確立された後、Apacheサーバーは、クライアントがHostヘッダーを送信するか、最初の仮想サ​​ーバーに渡す場合に使用する仮想ホスト構成を決定できます。ホストが構成されました。

同じドメインの下に複数の仮想ホストがある場合は、IPアドレスに単一のワイルドカード証明書をセットアップし、異なるサーバー名が定義された複数の仮想ホストを持つことができます。ただし、これらのサーバー名が同じドメイン名の下にない場合、クライアントサーバーエラーが生成されます。ワイルドカード証明書はそのドメイン名の下のすべてのホスト名に対して有効であるため、これは機能します。ドメイン名が異なる場合は、別のIPアドレスが必要になります。そのIPアドレスに対して定義された最初の証明書は、接続しているクライアントに提示されるものだからです。

2
Jeremy Bouse

実際、最新のソフトウェアでは、「SNI-サーバー名表示」と呼ばれる新機能を使用して、単一のIPアドレスで複数のHTTPSサイトにサービスを提供できます。

http://en.wikipedia.org/wiki/Server_Name_Indication

http://wiki.Apache.org/httpd/NameBasedSSLVHostsWithSNI

私はまだこれを使用していませんが、内部サイトやイントラネットサイトに適しているようです。最新のブラウザのほとんどはSNIをサポートしています。 IE6はSNIをサポートしていませんが、IE7はサポートしています。

(修正:20100426-SNIはWindowsではサポートされていませんXP。Windows Vista以降ではSNIがサポートされています。 http:// msdn .Microsoft.com/en-us/library/dd208005%28v = PROT.13%29.aspx#id8 )。

1

私は同じ問題に取り組んでいます。テストとして、IE7以降(Win7およびVistaのみ)/ Chrome/Firefox/Safari/Operaは「サーバー名表示」をサポートしています。実際、ブラウザがTsl 1.0を使用している場合、「サーバー名の表示」をサポートしています。

1
Sean

これは、SAN(Subject Alternative Name)として単一のssl証明書に追加できます。私の経験では、組織のsll証明書を要求する必要がありました。globalsignを使用しました。

1
user38425

同じIPに2つの証明書を追加しようとすると、最初に読み取られた証明書のみがどこでも使用されます。 1つのIP-1つのSSL証明書

同じIPでより多くのSSL証明書を取得したい場合は、マルチドメイン(いわゆるUCC-@ godaddy を確認してください)またはワイルドカード(より高価な)証明書の取得を検討してください。

0

OPは、多くの仮想ホストを持つIPにSSL証明書を追加するとどうなるかを尋ねていると思います。他の仮想ホストがSSL証明書を使用していない場合、彼は平文である必要があります。

0
Iraklis

UC証明書は間違いなく行く方法です: http://www.sslshopper.com/unified-communications-uc-ssl-certificates.html

0
Robert