課題:WordPressのサイトをHTTPS化してもブラウザで鍵マークが出ない(Mixed Content)
解決した課題
- WordPressサイトをHTTPS化しているにもかかわらず、ブラウザで鍵マークが表示されず「一部保護」状態になる。
- Mixed Content(HTTP参照の残存)により、警告表示や一部リソースのブロックが発生し得る。
対応内容
- 原因条件の整理:CDN等の中継は使っておらず、WordPress内部(特にDB)にHTTPで固定されたURLが残っている前提で調査した。
- ブラウザ開発者ツールで特定:
- Console/SecurityでMixed Content警告を確認し、HTTPになっているリソースURLを抽出した。
- Networkで
http://通信を洗い出し、参照元がコンテンツ由来であることを確認した。
- WordPress基本設定の統一:
- 「WordPressアドレス(URL)」「サイトアドレス(URL)」をHTTPSに統一した。
- MySQL上のHTTP決め打ちデータを置換(根治):
- 投稿本文・固定ページ・カスタムフィールド等の対象範囲を絞り、
http://→https://の置換を実施した(バックアップ取得後)。
- 一方で、JSON形式の文字列(設定値やメタ情報など)にHTTPが埋まっているケースは、機械的な文字列置換だと構造破壊や副作用が起き得るため、別手順で対応した。
- 該当レコードを外だし(抽出)し、JSONとしてデコード(パース)。
- URLが入っているフィールドのみを特定して置換(必要箇所だけを安全に更新)。
- 再度JSONとしてエンコードしてDBへ戻し、形式を保持したまま修正した。
- 確認:
- 主要ページで鍵マーク表示、Mixed Content警告の消失を確認した。
- 画像・CSS・JS等の読み込みがHTTPSに揃っていることを確認した。
- 再発防止:
- コンテンツ内でHTTP直書きを避ける運用ルールを明文化した。
- URL変更・HTTPS化のチェック項目に「DB内HTTP参照の残存確認(JSON/構造化データ含む)」を追加した。
結果
- DB内に残っていたHTTP参照を安全に置換し、Mixed Contentを解消してブラウザの鍵マーク表示を回復した。
- JSON内の値もデコード→限定置換→再エンコードで処理したため、データ構造を壊さずに修正できた。