ないこれが何をしたいですが、古いブラウザはSNIを必要とするサイトを使用してみました、それは戻って、この場合には(リダイレクトされます場合は、この
RewriteEngine on
# Test if SNI will work and if not redirect to too old browser page
RewriteCond %{HTTPS} on
RewriteCond %{SSL:SSL_TLS_SNI} =""
RewriteRule^http://www.example.com/too-old-browser [L,R=307]
があるかどうか確認してくださいhttpとブラウザが古すぎると言っているページ)。しかし、あなたはいつもエラーになるでしょう。それは避けることはできません。ブラウザはこんにちはIPと言う...、そして、Apacheの返信helloはここで私の証明書です。ブラウザがhello apacheでSNIを供給しない場合、デフォルトの(つまり間違った)証明書が送信されます。ブラウザはそれから不平を言う。
あなたは、あなたがhtaccessファイルに次のように
#Set $_SERVER['SSL_TLS_SNI'] for php = %{SSL:SSL_TLS_SNI} or value
SetEnv SSL_TLS_SNI %{SSL:SSL_TLS_SNI}
を何かを置くことができそして、自分のページにブラウザようhttpsのデフォルトのドメインからのフェッチ(デフォルトを行うhttpsにスワップする前に、HTTPからこれをピックアップする場合セキュリティ上のエラーがあるとは言いません)。 SNIが動作している場合、php $ _SERVER ['SSL_TLS_SNI']はドメイン名を持ちます。それ以外の場合は%{SSL:SSL_TLS_SNI}になります。このコードを改善することはできますが、あなたはそのアイデアを得ることができます。
SNIがない場合、サーバーはwww.example.comを報告する必要があります。私が正しく思い出すと、ApacheはSNIがないときにロードした**最初の**証明書を提供します。 – Andreas
はい、それは私がフォールバックの解決策を意味するものです。デフォルト値です。必要に応じて、両方に接続して得た内容を比較することができます。 – Bruno
これは良いアイデアのように思えます。私はそれをテストするつもりだ、これは私のために働くだろう。 –