2013-09-28 12 views
10

多くのクライアントサイトを実行しているDebianサーバーがあります。これらのほとんどはSSLを実行していないため、HTTPによるアクセスは問題ありません。Apacheサーバーごとに複数のサイトがあり、HTTPSで間違ったサイトがSSLで表示される

SSL証明書を持つ顧客が1人あり、HTTPS経由でサイトにアクセスすることもできます。

問題はHTTPSと他のサイトの一つにアクセスしようとした場合は、SSL証明書を持っている他のサイトに向けます来ます。例えば

、我々はサーバー上の次のサイトを持って言うことができます:

alpha.net 
bravo.net 
charlie.net (SSL) 
delta.net 

あなたが見ることができるように、チャーリーはSSLを持つ唯一のものである、と関係なく、あなたがHTTP charlie.netに行けばのまたはhttps charlie.net、それは正常に動作します。

他のサイトへのhttpはすべて正常ですが、https alpha.netに行くと、最初は無効な証明書のエラーが表示され、アドレスバーにalpha.net実際にはcharlie.netサイトをブラウザに表示しています。

私はSNIについて調査しましたが、他のサイトにSSLがある場合は、特定のIPアドレスにそれらをすべて置く必要があります(何か他の方法で解決する方法がありません)。なぜこれが起こっているのか、どうやって解決するのかはわかりません。

これまでに他に誰かが遭遇しましたが、どうやってそれを回避しましたか?

多くのおかげで、

ロブは

+0

これをさらに調査したところ、443を含む唯一のApacheサイト構成ファイルがcharlie.netであることがわかりました。これを含めるのは唯一の方法なので、たとえhttpsと他のドメインのいずれかに行こうとしても、httpsを使用する唯一のドメインだから、charlie.netに行くことになります。それは完璧な意味合いがあります。私が今行う方法がわからないのは、証明書がないので、443をセットアップしてHTTPにリダイレクトするhttps命令を与えることです。だから、誰かがそれをする方法を知っているなら、私はそれを感謝します。 – Rob

+1

joonはWebmasters SE:["https://"はランダムなサイトを指し、 "http://"は壊れていますが、 "http:// www"は動作します(http://webmasters.stackexchange。 com/q/55685/17633) – unor

答えて

1

あなたのサーバー上に複数のIPアドレスを持っている場合は、SSLサイトのためのユニークなものを使用し、すべての非SSLサイトが別のIPを共有しています。

SSLは、あなたが訪問しているドメインが何であるかを気にしないので、現在のドメインが、それは、IPアドレスから取得するドメイン(一般名)のリストから承認された場合、それだけで気に。

2

現在のところ、HTTPSサーバが1つしかないため、これはSNIとは関係ありません。あなたのコメントに記載されているように、alpha.netドメインがあなたのサーバーのIPに解決されるということが起こります。 Apacheサーバーは、このIP上のポート443の要求をリッスンし、charlie.netの内容をこれらの要求に対応するように設定されています。 (証明書のエラーは、ブラウザが証明書の主張されているドメイン名と要求に使用されているドメイン名との間に不一致があることに気付いたことを意味します)。

HTTPSからHTTPへのリダイレクトは、ユーザーに別のセキュリティ警告を提示しないように、各ドメインの証明書を確認してください。これには、alpha.net:443用の仮想ホストを作成するというように、SNIできるサーバ(opensslのではApache 2.2以降のすなわち、それ以降のバージョン)に、などのリダイレクトを追加することになってしまう:

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 

おそらくあなたの問題のための最も簡単なコースはcharlie.netのために別のIPを使うことです。この設定では、alpha.net(など)が別のサイトのコンテンツを表示する方法はありません。

関連する問題