web-dev-qa-db-ja.com

wwwを使用するとSSL / httpsが壊れる

重複しているために閉じないでください、私はすでに他の答えられた質問を試みました、そして、まだ問題を抱えています。

まず、wwwを使用すると、サイトの認証が破られる理由がわかります。証明書はexample.comではなくwww.example.com専用であり、wwwを追加することは技術的にはサブドメインであるため、証明書が破損し、ブラウザーが「悪い/信頼できない証明書」全体を実行します。

私の状況では、example.comだけの証明書があり、Googleはwww.example.comを使用してページのインデックスを作成します。これは明らかに問題です。なぜなら、人々が私のサイトで何かを検索するとき、「悪い証明書」に出くわすのはかなり面倒で悪いプレスだからです。

Httpsアクセスを強制してwwwを削除する方法はありますか? htaccessを使用してそうしようとしましたが、まだ証明書の問題が発生しています。

現在のhtaccessは、最初にhttp経由で接続するときに必要なことを実行する(https/no wwwを強制する)ことに注意してください。 httpsを使用してwwwを使用して最初の接続が行われた場合にのみ失敗します(おそらく、htaccessが動作する前にブラウザが接続を拒否しているためです)。

現在のhtaccess:

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

また、Googleがwwwを使用してページのインデックスを作成しないようにする方法があれば、それも私にとって受け入れられる回避策です。

6
Snappawapa

証明書が信頼されていない/有効でない場合、ブラウザはサーバーにそれ以上アクセスしないため、.htaccessリダイレクトは機能しません(ユーザーが証明書を例外として追加するとすぐに機能します)。

最善の解決策は、wwwを含むホスト名の証明書を取得することです。これは、ユーザーを正しいホスト名にリダイレクトするのに役立つだけではありません検索結果またはブックマークからのリンクをたどると、ホスト名をwwwで入力するユーザーにも役立ちます(wwwなしでアドバタイズされていても一般的に行われます)。インデックスからwwwのホスト名を削除しました。

それが不可能な場合は、少なくとも検索エンジンに、wwwなしのホスト名を優先するように通知できます。ここでは、301 redirectが最善の方法です。それが不可能な場合、2番目に良いのはcanonicalリンクタイプです。もちろん、両方とも、不正な証明書を無視する検索エンジンでのみ機能します(ほとんどの場合はそうでしょう)。

検索エンジンのウェブマスターツールを使用して優先ホスト名を設定することもできます。 Googleの場合は、 優先ドメイン(wwwまたはnon-www)の設定 を参照してください(ただし、これが信頼できる証明書のないホストで機能するかどうかはわかりません)。

いずれにせよ、あなたは待つ必要があります。しばらくすると、wwwを含むホスト名が検索結果から消えます。

8
unor

「悪い証明書」は、SSLハンドシェイク中にブラウザによってトリガーされます。これは、.htaccessまたはサーバーサイドロジックのいずれかが何かを行う機会を得るかなり前に発生し、発生する非常に最初のことです。あなたが提案するように、「htaccessが動作する前に、ブラウザは接続を拒否しています」。

したがって、SSL証明書がapexドメインに対してのみ有効であり、Googleが何らかの形でhttps://www.example.com/にインデックスを付けている場合、または人々がhttps://www.example.com/へのリンクをたどっている場合あなたの証明書。

googleがwwwでページのインデックスを作成しないようにする方法

HTTPS/wwwバージョンがさまざまな場所でリンクされていない限り、なぜこれを「維持」する必要があるのか​​、ちょっとしたパズルですか? (SSL証明書を使用する前に、一度http://www.example.comバージョンを使用しましたか?)

Google Search Console(GSC)で検証されたプロパティを使用すると、少なくともwwwとwww以外の設定を設定できます。

5
MrWhite

wwwサブドメインの証明書も取得することをお勧めしますが、ネームサーバーレベルでもリダイレクトを設定してみてください。ほとんどすべてのDNSソリューションプロバイダーには、名前マスクまたはドメイン転送を有効にする機能があります。

Httpレベルでも適用できるのか、HTTPSプロトコルでのリクエストに対して機能するのかはわかりませんが、一見の価値があります。

2
hjpotter92