書き換えルールなしで、たとえば https://www.domain.com から https://www.domain.net にリダイレクトしようとしています。 * .domain.netのワイルドカード証明書を持っています。これにより、error_logに次の警告が表示されます
[警告] RSAサーバー証明書のワイルドカードCommonName(CN) `* .domain.net 'がサーバー名と一致しません!?
これは理にかなっており、警告の理由を理解しています。警告なしに上記を実行するためにリダイレクトディレクティブを使用する方法があるかどうかを尋ねたいと思います。これがssl.confの私の仮想ホストです:
<VirtualHost *:443>
SSLEngine on
ServerName www.domain.net
DocumentRoot /var/www/html/domain
SSLOptions -FakeBasicAuth -ExportCertData +StrictRequire +OptRenegotiate -StdEnvVars
SSLStrictSNIVHostCheck off
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
ServerName www.domain.com
ServerAlias www.domain.info
Redirect permanent / https://www.domain.net
</VirtualHost>
また、解決策がある場合、それをhtps://domain.comからhtps://www.domain.comへのリダイレクトに使用できますか?どうもありがとう!
基盤となるHTTPS接続のSSLハンドシェイクおよび検証プロセスは、実際の要求が送信される前に発生することに注意してください。つまり、サーバー証明書の信頼性が検証されるまで、サーバーからのHTTP応答はなく、リダイレクトも行われません。
エンドポイントが1つしかない(つまり、パブリックIPアドレスが1つしかない)場合は、SAN証明書、つまりの証明書を購入する必要があります。サブジェクト代替名。
そうすれば、SAN *.domain.net
でwww.domain.com
のワイルドカード証明書を取得でき、証明書の警告は表示されません。
詳細については、 私が与えた古い回答 をチェックしてください。同様の状況で、nginx
の代わりにApache
を使用します。
www.domain.com
(さらに言えばwww.domain.info
)はwww.domain.net
と同じドメインではないため、警告が表示されます。この警告を回避する必要がある場合は、これらのドメインの証明書も必要です。