ウェブサイト

HTTPS有効化後の混合コンテンツ警告を修正する

When SSL is active but the browser padlock is missing, broken or showing a warning, the cause is almost always mixed content: the page itself is encrypted but something on it is still being fetched…

SSLがアクティブだがブラウザの鍵アイコンが表示されていない、壊れている、または警告が表示されている場合、原因はほぼ常に混合コンテンツです。ページ自体は暗号化されていますが、ページ上の何かはまだプレーンHTTPで取得されています。このガイドでは、その理由、問題のあるすべてのリソースを見つける方法、そして一時しのぎではなく適切に修正する方法を説明します。

混合コンテンツとは

ブラウザはページがHTTPS経由で到達した場合にのみ、ページを安全と見なします。HTTPSページがhttp://アドレスから画像、スクリプト、スタイルシート、フォント、またはiframeを取得する場合、ブラウザはそれにフラグを付けます。

ブラウザはこれを2つのカテゴリに分け、動作が大きく異なります。

  • アクティブな混合コンテンツ: スクリプト、スタイルシート、iframeおよびXHR。ブラウザはこれらを完全にブロックします。レイアウトが崩れ、スライダーが停止し、フォームが送信されなくなります。これが破壊的な種類です。
  • パッシブな混合コンテンツ: 画像、音声、ビデオ。これらは通常でも読み込まれますが、鍵アイコンは格下げされるか削除されます。

したがって、サイトは完全に正常に見えながら鍵アイコンを失っているか、ページ自体に明らかなエラーがないのに壊れて見えることがあります。

SSL有効化後に発生する理由

SSLをオンにするとサイトの提供方法は変わりますが、内部に保存されているものは変わりません。

WordPressはデータベースに絶対URLを書き込むため、HTTPで一定期間実行されていたサイトは次の場所にhttp://アドレスを保存しています。

  • エディタから挿入されたすべての画像を含む、投稿とページのコンテンツ。
  • メディアアタッチメントレコード。
  • テーマカスタマイザー設定とテーマオプション。
  • ウィジェットコンテンツとブロック設定。
  • プラグイン設定、特にページビルダーとスライダープラグイン。
  • siteurlおよびhomeオプション。

これらは自動的には更新されません。SSLを有効にしてから鍵アイコンが壊れている理由を不思議に思うことは、最も一般的なサポート質問の1つです。これが理由です。

ステップ1: サーバーでHTTPSを強制する

データベースに触れる前に、すべての訪問者がまずHTTPSにアクセスしていることを確認してください。

  1. KPanelにサインインし、左側のサイドバーでWebsitesをクリックします。
  2. サイトをクリックします。
  3. Settingsを開きます。
  4. Behaviorの下で、Force HTTPSをオンにします。
  5. Save Changesをクリックします。

KPanelのサイトのForce HTTPS設定

すべてのHTTPリクエストは現在、サイトが実行される前にサーバーでHTTPSにリダイレクトされます。

Force HTTPSは受信したリクエストを処理します。データベース内に既に保存されているURLを書き直すわけではないので、単独ではハードコードされたhttp://画像が原因の混合コンテンツ警告をクリアしません。このステップとステップ2の両方が必要です。

SSLがまだアクティブでない場合、または証明書が間違って見える場合は、SSL Certificatesから始めてください。

ステップ2: 保存されているURLを書き直す

これが混合コンテンツを実際に解決する修正です。

  1. サイトを開き、WordPressタブを開き、Quick Actionsセクションを開きます。
  2. Search & Replaceカードを見つけてConfigureをクリックします。
  3. **Find (old value)**にhttp://yourdomain.co.nzを入力します。
  4. Replace withhttps://yourdomain.co.nzを入力します。
  5. Dry run (preview only, no changes)を選択したままにしてPreviewをクリックします。
  6. カウントと表ごとの内訳を確認します。
  7. Dry runの選択を解除し、Runをクリックして確認します。

置き換えの前に完全なバックアップが自動的に取得され、プラグインによって作成されたテーブルを含むすべてのテーブルがカバーされます。シリアル化されたプラグイン設定は正しく処理されます。

phpMyAdminのSQLクエリでこれを実行しないでください。WordPressはプラグインとテーマの設定をシリアル化された文字列として保存し、すべての値の長さを記録するため、生のREPLACE()はそれを破壊し、設定は静かに空にリセットされます。バックアップの復元以外に修復はありません。詳しい説明はRunning a Search and Replaceにあります。

プランにコンソールが含まれている場合、同等のコマンドは以下の通りです:

search-replace 'http://yourdomain.co.nz' 'https://yourdomain.co.nz' --all-tables --dry-run

--dry-runをドロップして適用し、事前に自分でバックアップを取得してください。コンソールは取得しません。

ステップ3: すべてのキャッシュをクリアする

ページのキャッシュコピーは、データベースが修正されずっと後でも古いHTTP URLを提供し続けます。これが人々が置き換えが機能しなかったと考える理由です。

  1. WordPress、その後Quick Actions、その後Flush Cache
  2. WordPress、その後Caching、その後Purge cache、フルページキャッシュがオンの場合。
  3. Performance、その後Kapsule CDN、その後Purge、CDNがオンの場合。Purging the CDN Cacheを参照してください。
  4. キャッシング プラグインの設定画面から。
  5. 自分のブラウザ。プライベートウィンドウでテストして、自分のキャッシュに騙されないようにしてください。

ステップ4: 残ったものを見つける

ステップ2後、ほとんどのサイトはきれいです。警告が残っている場合は、推測せずに正確なリソースを見つけてください。

ブラウザコンソール。 F12で開発者ツールを開き、Consoleタブに移動して再度読み込みます。混合コンテンツは問題のあるリソースの完全なURLに名前を付ける明示的な警告として表示されます。そのURLはどのプラグインまたはテーマが責任を持つかを示します。

Network タブ。 http://でフィルタしてページが行ったすべての安全でないリクエストをリストします。

ページソース。 ページを読み込み、ソースを表示してhttp://を検索します。xmlns属性とスキーマ宣言内のすべてを無視します。これらは識別子であり、リクエストではありません。

一般的な残ったもの、および各々に関して実施すべきこと:

見つけたもの修正
テーマカスタマイザー設定の画像またはロゴカスタマイザーで再度アップロードするか再度選択します
入力されたhttp://画像URLを含むページビルダーモジュールそのモジュールを編集してURLを修正します
スライダープラグイン独自の設定テーブルスライダーを再保存するか、--all-tablesで検索と置き換えを実行します
サードパーティドメインのフォントまたはスクリプトプロバイダーがHTTPSを提供するかどうかを確認します。ほとんどの場合、提供します。URLを切り替えます
古いベンダーのトラッキングピクセルまたは埋め込みベンダーがHTTPSを持たない場合は削除します。これはKapsule問題ではなく、壊れた依存関係です
テーマテンプレートファイルにハードコードされたhttp://テンプレートを編集するか、より良いのはhttpsまたはプロトコル相対参照を使用します

正確に1つのページだけが影響を受けており、サイトの残りはきれいな場合、原因はサイト全体の設定ではなく、そのページのコンテンツです。エディタでそれを開き、それが埋め込むメディアを見ます。

修正されたことを確認する

  1. プライベートウィンドウでサイトを読み込みます。
  2. 鍵アイコンは実心で、警告三角形がなく、取り消し線の表示もないはずです。
  3. 鍵アイコンをクリックします。ブラウザは接続を安全として報告し、混合コンテンツの通知はありません。
  4. コンソールを開いて再度読み込みます。混合コンテンツの警告がゼロです。
  5. ホームページだけでなく、深いページを確認してください。内部ページ、画像を含むブログ投稿、ストアのチェックアウト。

戻ってくることを防ぐ

  • Force HTTPSをオンのままにしてください。 これは問題のクラス全体を削除する1行の設定です。
  • コンテンツに完全なhttp://URLを決してタイプしないでください。 メディアライブラリを使用してください。これはHTTPSアドレスを保存するようになりました。
  • 何かをインストールした後、プラグイン設定をチェックしてください URLを求めるもの。
  • プラグインアップデート後に返ってくる警告を見てください。 いくつかのプラグインは独自に保存されているURLをリセットします。
  • 任意の移行後に検索と置き換えを再実行してください。インポートされたデータベースは旧ホストのURLを持ちます: Migrating a Website From cPanel

トラブルシューティング

鍵アイコンは私にはいいですが、同僚には壊れています。 キャッシュされたページ。プライベートウィンドウで再度読み込むようにしてください。

置き換え後にサイトが完全に壊れました。 自動事前実行バックアップを復元します: Restoring From a Backup

コンソールは私のものではないドメインで混合コンテンツ警告を表示しています。 サードパーティリソース。サーバーを修正することはできません。HTTPSをサポートしてURLを切り替えるか、リソースを削除します。

すべてがHTTPSですが、サイトがまったく読み込まれません。 これは混合コンテンツではありません。Website Not Loadingから始めて、SSL Certificatesで証明書を確認してください。

これらすべてを実行しても警告が続く場合は、影響を受けたURLとブラウザコンソール警告の正確なテキストを含めるsupport@kapsulehost.comにメールを送信してください。

それでもお困りですか?

こちらまでメールでお問い合わせください support@kapsulehost.com またはKPanelでチャットを開いてください。

KPanel を開く