Apache2でSSLフォールバックを無効にするか、証明書を一致させずにリダイレクトする


1

私は自分のサーバー上に複数のバーチャルホストがあります。

www.example.com
sub.example.com
www.example.nl

私のDNS設定では、すべて同じサーバーを指しています。

apache2 configには、http用とhttps用のデフォルトのconfigファイルと、追加サイト用の追加の仮想ホストがあります。すべての近似試合をリダイレクトしたい www.example.com。すべての特定サイトに証明書があります。

だから私のファイルはこのようになります

000-default.conf (redirects to https://www.example.com)
default-ssl.conf (serves https://www.example.com)
sub.example.com.conf (redirects to https://sub.example.com)
sub.example.com-ssl.conf (serves https://sub.example.com)
www.example.nl.conf (redirects to https://www.example.nl)
www.example.nl-ssl.conf (serves https://www.example.nl)

問題は、他の要求が be-creative.example.nl )デフォルトは最初にロードされた設定になります。これはhttp()のために働きます 000-default 有効な証明書がロードされていないため、一致してリダイレクトされます)、httpsでは機能しません。 be-creative.example.nl。したがって、私はリダイレクトも有効なページも提供できません。

無効にした場合 default-ssl.conf、要求はによって一致します sub.example.com-ssl.conf それでも間違った証明書が出されます。

質問 :証明書を持っていないこれらの要求をエレガントに処理するにはどうすればよいですか。最初に有効な一致する証明書がなくてもhttpにリダイレクトするにはどうすればよいですか?

回答:


0

私がこれを私自身のサーバー(CentOS、Apache 2.4)で解決する方法は有効なSSL証明書(Let's Encryptから無料の証明書を持っている)を含む一般的なページ(invalidssl.example.com)を持ち、デフォルト設定でそれを設定する。そのようにして、非sslドメインへのhttpsリクエストは、代わりにその素敵なエラーメッセージを含む一般的なページを表示します。

あなたの質問に答えるには:

ブラウザの警告を表示しないでhttps経由でページをリクエストする訪問者にコンテンツを提供する唯一の方法(それがページ、または転送応答)は、リクエストされたドメインの有効なSSL証明書で応答することです。最近、無料のSSL証明書がすぐに利用可能になるため、この問題が発生する理由は個人的にはわかりません。 暗号化しましょう


しかし、誰かが別のURLからそのページにアクセスした場合( blah.example.com ブラウザはまだ "安全でないページです!"というメッセージを表示します - 彼/彼女がいいエラーメッセージを見る前に、そうでしょう?
TacoV

1
そうそう、そうです!ブラウザの警告を表示せずにhttps経由でコンテンツを配信する唯一の方法は、訪問者が要求したドメインに対して有効なSSL証明書を使用することです。私はこれを回避する方法があるとは思わない(これは仕様によるものです。回避することができれば、それはかなり危険です)。
cascer1

1
私のドメインはcatch-allに設定されているので(* .example.comはこのサーバーにアクセスします)、Let's Encryptはワイルドカード証明書をサポートしていないので、私は主にこの問題を抱えています。実際にはすべてのSSLサイトを無効にしてhttps(ERR_SSL_PROTOCOL_ERROR)を試すと(ブラウザの)メッセージが表示されます。
TacoV

あなたがプロトコルエラーを抱えているならば、私は人々がそのサイトにたどり着くことが可能になるとは思わない まったく 。これを行う方法を私が知っている唯一の方法は、クライアントがサポートしている暗号をサポートしないようにopenssl設定を実際に変更することですが、有効な証明書でも機能しません。あなたの訪問者がapacheとopensslの設定についてあまり知らないなら、私は彼らがとにかくそれを理解していないので彼らがただ消えるので他のものよりもエラーが優先されるべきではないと思います。 >>
cascer1

>>あなたができる一つのことは、無効なサブドメインへのリクエストについてApacheログをスキャンし、定期的にそれらのサブドメインの証明書を暗号化しようとリクエストするプログラムを書くことです。それは理想的ではありませんが、残念ながらもっと良い解決策を考えることはできません。
cascer1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.