2

domain.com の SSL 証明書のみを所有するサイトで作業しています。wwwを削除しようとしています。domain.com にリダイレクトします。これでうまくいきました。

また、すべてのページで HTTPS を強制したいのですが、www. は入力されません。

https://www.domain.comで URL を指定するとエラーが発生します。

https://domain.comに書き換えられていることがわかりますが、受け入れるか拒否する必要がある証明書エラーが表示されます。

別の証明書を購入せずにこれを回避する方法はありますか?

私が試した多くのルールの組み合わせのうちの2つを次に示します(それらの多くは他のSOの回答からのものです)。

1.

RewriteCond %{HTTP_HOST} ^(www\.)(.+) [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]

2.

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

RewriteCond %{SERVER_PORT} !^443
RewriteRule ^ https://domain.com%{REQUEST_URI} [R=301,L]
4

1 に答える 1

3

これを回避する方法はないと思います。証明書エラーは、HTTP 要求が行われる前に発生する SSL (TLS) 接続から発生しています。

ユーザーがhttp://www.domain.com/または単にhttp://domain.com/にアクセスした場合、 https://domain.com/にリダイレクトできます。ユーザーがhttps://www.domain.com/にアクセスすると、リダイレクトを受け取る前に証明書エラーが発生します。

あなたの選択肢は次のとおりだと思います:

  1. HTTPS が無効になっているサーバーを www.domain.com に指定します。ユーザーがhttps://www.domain.com/にアクセスすると、接続エラーが発生します。これは、証明書エラーよりも望ましい場合があります。
  2. www.domain.com または *.domain.com の証明書を購入する
于 2012-08-09T21:45:19.603 に答える