web-dev-qa-db-ja.com

「SSL証明書ごとに専用IPが必要」とはどういう意味ですか?

SSL証明書について少し読みましたが、特にSSL証明書には「専用IPアドレスが必要」であることを読みました。今、私はこれの意味がわかりません。それは、証明書が通常のHTTP通信に使用されるIPアドレスとは別の専用IPアドレスを必要とすることを意味するのか、それとも他のSSL証明書とIPアドレスを共有できないのか?

明確にするために、私は専用のIPアドレスを持つVPSを持っています。 VPSは、メインサイトのいくつかのサブドメインを含む、かなり多くの異なるサイトをホストしていますが、SSLを必要とするのはメインサイトとサブドメインだけです。現在のIPアドレスを使用して*。example.comのSSL証明書を購入することはできますか、それとも別のIPアドレスを取得する必要がありますか? VPSのサイト?またはさらに悪いことに、サーバー上のすべてのHTTPトラフィックとは別のものを取得する必要がありますか?他のどのサイトもSSLを必要としないことに注意してください。

トピックについての説明をありがとう。


編集:私の心配のいくつかの情報源:

http://symbiosis.bytemark.co.uk/docs/symbiosis.html#ch-ssl-hosting

SSL証明書をインストールするには、専用のIPアドレスが必要ですか?

23
Hubro
  1. 「SSL証明書」というものはありません。用語は誤解を招くものです。 X.509証明書は、さまざまな目的(キー使用法と拡張キー使用法の「プロパティ」で定義されている)、特にSSL/TLSセッションを保護するために発行できます。

  2. 証明書は純粋なデータなので、証明書はソケット、アドレス、ポートに関して何も必要としません。

  3. TLSで接続を保護する場合、通常は証明書を使用してサーバー(および場合によってはクライアント)を認証します。 IP /ポートごとに1つのサーバーがあるため、通常、サーバーが使用する証明書を選択しても問題はありません。

    HTTPSは例外です。複数の異なるドメイン名が1つのIPを参照でき、クライアント(通常はブラウザ)が異なるドメイン名の同じサーバーに接続します。ドメイン名はリクエストでサーバーに渡され、リクエストはafter TLSハンドシェイクになります。

    ここで問題が発生します-Webサーバーは提示する証明書を認識していません。これに対処するために、SNI(サーバー名表示)という名前の新しい拡張機能がTLSに追加されました。ただし、すべてのクライアントがサポートしているわけではありません。したがって、一般的には、ドメインごとにIP /ポートごとに専用サーバーを用意することをお勧めします。つまり、クライアントがHTTPSを使用して接続できる各ドメインには、独自のIPアドレス(または異なるポートがありますが、これは通常ではありません)を持つ必要があります。

SSL証明書には専用IPアドレスは必要ありません。 SSL証明書は、いわゆる共通名を格納します。ブラウザはこの共通名を、通信しているサーバーのDNS名として解釈します。共通名がブラウザーが通信しているサーバーのDNS名と一致しない場合、ブラウザーは警告を発行します。

いわゆるワイルドカード証明書を取得できます。これは、特定のドメイン内のすべてのホストで許可されます。

5
Oswald

... @ Eugeneの回答を、互換性の問題に関する詳細情報でフォローアップしています...

namecheap.comのこのページ によると、SNIは機能しません。

  • Windows XP +すべてのバージョンのInternet Explorer(6、7、8、9)
  • Internet Explorer 6以前
  • Windows XP上のSafari
  • BlackBerryブラウザ
  • Windows Mobile最大6.5
  • Series60以上のSymbian用Nokiaブラウザ
  • 少なくともSeries60ではSymbian用Opera Mobile

Webサイトは引き続きHTTPS経由で利用できますが、証明書の不一致エラーが表示されます。

したがって、私たちが2016年に入るとき、私はそこに首を突き出して、「とにかくモダンなWebサイトを構築している場合(古いをサポートしていない)ブラウザ)、そしてプロジェクトが小さくて専用IPアドレスを使用できない場合は、おそらくSNIに依存することになるでしょう。」もちろん、これに反対する専門家は何千人もいますが、私たちは実用的であること、完全ではないことについて話しています。

3
JoshuaDavid

Ssl証明書のコマンド名はドメイン名と一致する必要があります。証明書プロバイダーまたはhttpサーバーソフトウェアによって課せられた制限でない限り、IPアドレスに対する必要条件はありません。

Edit:Webを調べたところ、Apacheのsslプラグインがなかったために噂が広まっているようです(少なくともそれは含まれていませんでした2002)ホスト名に基づいて異なる証明書を使用するためのメカニズム。このようなシナリオでは、2つの異なるIPアドレスで2つの異なるApache Webサーバーを実行する必要があります。

いずれにせよ、構成では2つの異なる証明書を使用する必要がないため(ワイルドカード証明書の使用を計画しているため)、IPを1つだけ使用しても問題はありません。

とにかく、2番目のIPまたは証明書にお金をかける前に、自己署名証明書でWebサーバーを構成してみます。

編集2:Apacheのドキュメントを参照:

http://httpd.Apache.org/docs/2.2/vhosts/name-based.html

今のようです(Apache> = 2.2.12)サポートされています

0
pqnet