解決した課題

  • 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内の値もデコード→限定置換→再エンコードで処理したため、データ構造を壊さずに修正できた。