私の仮想ホストは次のようになります:
<VirtualHost example.com:443>
SSLEngine on
SSLCertificateFile /etc/Apache2/ssl-keys/example/example.crt
SSLCertificateKeyFile /etc/Apache2/ssl-keys/example/example.key
SSLCACertificateFile /etc/Apache2/ssl-keys/example/COMODO_EV_SSL.ca-bundle.crt
SSLProtocol -ALL -SSLv3 +TLSv1
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
DocumentRoot /home/example/www/current/web
ServerName example.com
ServerAlias www.example.com
<IfModule php5_module>
php_value newrelic.appname "Example"
</IfModule>
</VirtualHost>
https://example.comにアクセスすると)すべてが良好ですが、httpsのような同じサーバーを指している他のドメインに移動した場合、理由は不明です。 -)://anydomain.com次に、上記の仮想ホストが応答しています。明らかにブラウザは証明書がドメインと一致しないと言っていますが、それを無視した後、私はhttps://example.com under https:// anydomain.com、それでもhttp://anydomain.com私はまったく異なるウェブサイトを持っています。
https on http)を使用できることを私は知っています://anydomain.com別のIPアドレスで別の証明書を設定する必要があります-それは私の問題ではありません。
次のいずれかのオプションを実行したいと思います。
どうすればこれを達成できますか?前もって感謝します。
ポートに1つの仮想ホストのみを定義すると、Apacheによってデフォルトの仮想ホストとして扱われ、それに接続するすべてのクライアントに提供されます。
したがって、必要なのは、別の仮想ホストを追加し、それをデフォルトの仮想ホストとして扱う必要があることを示し、404クライアントになるように設定することです。たとえば.comの証明書と同じ証明書を使用する必要があります。これは、 https://example.com にアクセスするクライアントでも使用されないためです [〜# 〜] sni [〜#〜] 。
したがって、次のようになります。
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile /etc/Apache2/ssl-keys/example/example.crt
SSLCertificateKeyFile /etc/Apache2/ssl-keys/example/example.key
SSLCACertificateFile /etc/Apache2/ssl-keys/example/COMODO_EV_SSL.ca-bundle.crt
SSLProtocol -ALL -SSLv3 +TLSv1
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
Redirect 404 /
</VirtualHost>
SNIのないクライアント(最近は少数になる傾向があります)を気にしない場合は、同じIP上に異なるTLS証明書を持つhttpsWebサイトをいくつでも持つことができます。仮想SSLホスティングの制限は、非SNIクライアントが、証明書を提供する前にアクセスしたいvhostをSSLレイヤーにアドバタイズしないという事実によるものです。