UCC / SAN証明書を使用した単一IP上のApache SSL VirtualHosts


11

単一のIPからSSLで複数のApache仮想ホストをホストする必要があります。

現在-SSLはHTTPリクエストをラップするため、公開キーが最初にクライアントに送信されるまで、どのホストがリクエストされているかを知る方法がないことを理解しています。これにより、標準のSSL証明書を使用するSSL仮想ホストの可能性が本質的に失われます。

ユニファイドコミュニケーション証明書(UCC)、またはサブジェクトの別名(SAN)証明書を取得しました。これにより、複数のドメインに同じ証明書を提供できます。

これを任意の SSLリクエストに対してApacheが提供する証明書にしたい-そして、暗号化が確立されたら、Apacheに通常どおり仮想ホストを解決させます。

このためにApacheをどのように構成すればよいですか?私はこれをどのように行うことができるかを研究しようとしましたが、見つけることができるのはそれが可能であると言う引用ですが、詳細はありません:


wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

Apacheは、リクエストでホスト名を確認した後、SSL接続を再ネゴシエートできます(そして、します)が、最初のハンドシェイク中にリクエストのホスト名と一致するために使用する適切なサーバー証明書を選択するには遅すぎて、証明書に関するブラウザの警告/エラーが発生します間違ったホスト名。

serverfault.com/questions/48334/apache-virtual-hosts-with-ssl

ちなみに、単一のIPアドレスで複数のSSLで保護された名前付き仮想ホストを使用することは可能です(Webサイトで行います)が、Apacheログにはあらゆる種類の警告が、ブラウザーには証明書の警告が生成されます。私は確かに、きれいに見える必要がある本番サイトにはお勧めしません。-デビッド7月31日4:58

www.digicert.com/subject-alternative-name.htm

仮想ホスト単一のIPアドレス上の複数のSSLサイト。通常、単一のサーバーで複数のSSL対応サイトをホストするには、サイトごとに一意のIPアドレスが必要ですが、サブジェクトの別名を持つ証明書でこの問題を解決できます。Microsoft IIS 6とApacheは両方とも、ユニファイドコミュニケーションSSL(別名SAN証明書)を使用してHTTPSサイトを仮想ホストできます。


助けてください。

回答:


13

これをApache 2.2.14インスタンスでテストし、うまく機能しました:

(ports.confに)NameVirtualHostディレクティブを使用します。

NameVirtualHost *:443

仮想ホストを定義します。

<VirtualHost *:443>
  ServerName www.siteA.com
  DocumentRoot "/opt/apache22/htdocs/siteA"
  SSLCertificateFile "/path/to/my/cert"
  SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>
<VirtualHost *:443>
  ServerName www.siteB.com
  DocumentRoot "/opt/apache22/htdocs/siteB"
  SSLCertificateFile "/path/to/my/cert"
  SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>

このリンクをリソースとして使用しました。


1
の答えは正しいです。LOOOONNNNNNGGGGGの時間のために私をつまずかせた1つのことは、私が持っていたタイプミスがあったということ<Virtual *:433>です...正しいポートは443です!うわ、これに失われた私の人生の時間は...希望は私の痛みは無駄ではなかったし、これは...誰かを助け
ニック・P.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.