私はサーバー構成にあまり詳しくありません。この問題について私を助けてください:
私はDebian8サーバーとSSL証明書を持っています。SSL証明書はMyの非wwwドメイン専用なので、htaccessコードの下ですべてのwwwリクエストを非wwwにリダイレクトします。
Chromeの場合:正常にリダイレクトされますhttp://www.example.com
またはhttp://example.com
へのリクエストhttps://example.com
これが私がすべてのブラウザに求めていることです。
Mozillaの場合:リダイレクトhttp://www.example.com
へのリクエストhttps://www.example.com
およびINSECURE CONNECTIONエラーの処理を停止しました。ここからブラウザはまずwwwのSSL証明書をチェックし、www以外のリダイレクトの前に停止すると思います。
以下は私の.htaccess
httpsでwwwを非wwwにリダイレクトすることは、私が逃したものです.htaccess
?またはDNSを介して、またはApacheのデフォルトを使用したその他のソリューションssl.conf
。
RewriteCond %{HTTP_Host} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
私のSSL証明書は Certbot で、このチュートリアルに従ってインストールしました https://www.youtube.com/watch?v=-TPoGQ4IjDI&t=100s 1つのドメインがwww以外のプロンプトを表示し、wwwのSSL証明書を設定するオプションがない。 wwwのSSL証明書を取得できたら、問題を解決することもできます。
一部のブラウザでは機能するが、他の一部では機能しない
以前に無効な証明書を受け入れていない限り、どのブラウザーでも「機能」しないはずです。無効な証明書ブラウザの警告beforeが表示され、サイトがリクエストを受信します。 SSLハンドシェイクは、接続が安全であることを確認するためにリクエスト中に最初に発生するものであり、これが発生する前にリダイレクト(または何か)を実装することはできません。
問題を解決する唯一の方法は、www
サブドメインをカバーするSSL証明書を実装することです。
それは私のために働いた!
基本的にSSLの用語では http://www.example.com と http://example.com は異なるドメインです。証明書を再発行して、プライマリドメインとして http://example.com を追加し、他のドメインを追加する必要があります http://www.example.com
これはコメントになるはずですが、少し長いです。
ここからブラウザはまずwwwのSSL証明書をチェックし、www以外のリダイレクトの前に停止すると思います。
なんでそう思うのですか?
ログを見て、実際に何が要求されているかを確認しましたか?
この動作の最も可能性の高い理由は、Firefoxブラウザーが証明書を検証できないことです。しかし、特定のエラーメッセージを確認し、ここでの説明に関連しないと判断したため、何であるかを教えてくれませんでした。そして、Firefoxを https://example.com に直接ポイントしてみましたが、同じエラーは発生しませんでした。
それともしましたか?