最近Apache2をバージョン2.2.31にアップグレードした後、SSL VirtualHostセットアップで奇妙な動作が見つかりました。
クライアントがServer Name Identification
を認識していても、私がホスティングしているWebサイトのいくつかにデフォルトのホストの証明書が表示されていましたが、これはそのうちのいくつかでのみ発生しました。これは、ホームバンキングを閲覧している場合に詐欺の可能性があるというFirefoxとChromeの一般的なパスポート警告として表示されますが、それは事実ではありませんでした。
明確にするために、サーバーHost.hostingdomain.org
に独自のSSLがある場合、https://www.hostedsite.org
にアクセスしようとするとHost.hostingdomain.org
の証明書が報告されますが、一部のhttps://www.hostedsite.me
は正しい証明書を報告しました。
すべてのサイトは、ポート443の同じIPアドレスでホストされています。実際、VirtualHostingはHTTP側で機能し、SNI対応クライアントをSSLに自動的にリダイレクトするため、SNI非対応クライアントとの下位互換性があります。
問題のあるVirtualHostsのエラーログを調べると、次のテキストが表示されます
[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)
実際、vhostはSSLCertificateFileで正しく構成されていました。
問題は明白です。それをどのように修正すればよいですか?
Apacheの最新バージョンのバグである可能性があります。
listen.conf
置換Listen *:443
(またはListen 443
設定に応じて)Listen *:443 http
私は同じ正確な問題を抱えていました、そして私のために働いたものは信じられないほど単純でした
/etc/Apache2/ports.confを編集します(ubuntuまたはhttpd.confの場合)
ssl_moduleの下の「Listen 443」を「Listen 443 http」に変更します
このための別の解決策は、すべての:443 vhostsにTLS構成が含まれていることを確認することです。
この問題は最近 Debian wheezyで導入 であり、私は http://blog.noizeramp.com/2010/10/03/Apache-2-and-ssl-configurationから解決策を得ました/ 。