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

Source: https://support.kapsulehost.com/ja-jp/ssl-mixed-content

## 混合コンテンツとは

ブラウザーがページを安全なものとして扱うのは、ページとそれが読み込むすべてのものがHTTPSで配信された場合だけです。HTTPSページが`http://`アドレスから画像、スクリプト、スタイルシート、フォント、またはiframeを取得する場合、ブラウザーはそれにフラグを付けます。

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

- **アクティブ混合コンテンツ**: スクリプト、スタイルシート、iframeとXHR。ブラウザーはこれらを完全にブロックします。レイアウトが崩れ、スライダーが停止し、フォームの送信が停止します。これが破壊的な種類です。
- **パッシブ混合コンテンツ**: 画像、音声、動画。これらは通常まだ読み込まれますが、パドロックはダウングレードまたは削除されます。

したがって、サイトは完全に正常に見えながらもパドロックを失っているか、ページ自体に明らかなエラーがないのに壊れているように見えることがあります。

## SSLを有効にした後に発生する理由

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

WordPressはデータベースに絶対URLを書き込むため、HTTPで任意の期間実行されたサイトは以下に`http://`アドレスが保存されています。

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

これらのいずれも自動的には更新されません。SSLを有効にしてからパドロックが壊れている理由を疑問に思うことは、最も一般的なサポートの質問の1つであり、これが理由です。

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

データベースに触れる前に、すべてのビジターが最初からHTTPSにアクセスしていることを確認してください。

1. [KPanel](https://kpanel.kapsulehost.com)にサインインして、左のサイドバーの**Websites**をクリックします。
2. サイトをクリックします。
3. **Settings**を開きます。
4. **Behavior**の下で、**HTTPS を強制**をオンにします。
5. **変更を保存**をクリックします。

![KPanelのサイトの設定ページでBehaviorの下のHTTPS を強制設定](https://support.kapsulehost.com/help/screenshots/ssl-mixed-content.6758a2bb.webp)

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

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

SSLがまだアクティブでない場合、または証明書が間違っているように見える場合は、[SSL証明書](https://support.kapsulehost.com/ja-jp/ssl-certificates)から始めてください。

## ステップ2: 保存されたURLを書き換える

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

1. サイトを開き、**WordPress**タブを開き、**クイックアクション**セクションを開きます。
2. **Search & Replace**カードを見つけて**Configure**をクリックします。
3. **検索（旧値）**に`http://yourdomain.co.nz`を入力します。
4. **置換**に`https://yourdomain.co.nz`を入力します。
5. **ドライラン（プレビューのみ、変更なし）**をチェックしたままにして**Preview**をクリックします。
6. カウントとテーブルごとの内訳をレビューします。
7. **ドライラン（プレビューのみ、変更なし）**をチェック解除して**Run**をクリックし、確認します。

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

> **Warning:** phpMyAdminでSQLクエリでこれを実行しないでください。WordPressはプラグインとテーマの設定をシリアル化された文字列として保存し、すべての値の長さを記録するため、生の`REPLACE()`はそれらを壊し、設定は自動的に空にリセットされます。バックアップの復元以外に修復方法はありません。完全な説明は[検索と置換の実行](https://support.kapsulehost.com/ja-jp/wordpress-search-replace)に記載されています。

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

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

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

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

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

1. **WordPress**、次に**クイックアクション**、次に**キャッシュをフラッシュ**。
2. **WordPress**、次に**Caching**、次に**キャッシュを削除**、フルページキャッシュがオンの場合。
3. **Performance**、次に**Kapsule CDN**、次に**Purge**、CDNがオンの場合。[CDNキャッシュの削除](https://support.kapsulehost.com/ja-jp/cdn-cache-purge)を参照してください。
4. キャッシングプラグイン、その独自の設定画面から。
5. 独自のブラウザー。プライベートウィンドウでテストして、独自のキャッシュに騙されないようにしてください。

## ステップ4: 残っているものを見つける

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

**ブラウザーコンソール。** F12で開発者ツールを開き、**Console**タブに移動してリロードします。混合コンテンツは、不正なリソースの完全なURLに名前を付けた明示的な警告として表示されます。そのURLは、どのプラグインやテーマが責任を持っているかを示しています。

**ネットワークタブ。** `http://`でフィルタリングして、ページが実行したすべての不安全なリクエストをリストアップします。

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

一般的なサバイバー、および各ファイルについて何をするか:

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

> **Tip:** 正確に1ページだけが影響を受け、サイトの残りの部分がクリーンな場合、犯人はサイト全体の設定ではなく、そのページのコンテンツです。エディターで開いて、埋め込むメディアを確認してください。

## 修正されたことの確認

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

## 戻ってくるのを防ぐ

- **HTTPS を強制を有効にしたままにします。** これは問題の全体的なクラスを削除する1行の設定です。
- **コンテンツに完全な`http://`URLを入力しないでください。** メディアライブラリを使用してください。メディアライブラリはHTTPSアドレスを保存します。
- **URLを要求するものをインストールした後、プラグイン設定をチェックしてください。**
- **プラグインの更新後の返却警告を見守ってください。** 一部のプラグインは独自に保存されたURLをリセットします。
- **マイグレーション後に検索と置換を再実行してください。** インポートされたデータベースは古いホストのURLを付けて来ます。[cPanelからのウェブサイトのマイグレーション](https://support.kapsulehost.com/ja-jp/sites-migrate-cpanel)を参照してください。

## トラブルシューティング

**パドロックは私にとっては問題ありませんが、同僚には壊れています。** キャッシュされたページ。プライベートウィンドウでリロードしてもらいます。

**置換後にサイトが完全に壊れました。** 自動の前置換バックアップを復元します。[バックアップからの復元](https://support.kapsulehost.com/ja-jp/restoring-from-backup)を参照してください。

**コンソールに自分のものではないドメインの混合コンテンツ警告が表示されます。** サードパーティのリソース。それらのサーバーは修正できません。HTTPSをサポートしているかどうかを確認してURLを切り替えるか、リソースを削除します。

**すべてがHTTPSですが、サイトが完全に読み込まれません。** それは混合コンテンツではありません。[ウェブサイトが読み込まれない](https://support.kapsulehost.com/ja-jp/website-not-loading)から始めて、[SSL証明書](https://support.kapsulehost.com/ja-jp/ssl-certificates)の証明書を確認してください。

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