常時SSL化の設定をしたのに「保護された通信」が表示されない時はパスにHTTPが残っているのかも?

最近このブログを常時SSL化したのですが、ある程度設定を終えてHTTPSでアクセスしてみたのですが「保護された通信」が表示されなくて困ってましたが物凄く初歩的な事を忘れていました。
そもそも常時SSLとは?
SSL(Secure Sockets Layer)は、ネット上のデータの通信を暗号化して、データの盗聴や改ざんを防ぐ仕組みの事です。(特徴として、SSL化したページのURLはhttps://〜〜になります)
よく、ネットで買い物を行ったりする時に「アドレスバーに緑の鍵アイコンが付いてるのを確認してから情報を入力するようにしましょう」という話をよく聞きますよね。あの緑の鍵アイコンが付いているのが、SSLを導入しているページです。もし、SSLを導入していないページで買い物をしたり情報を入力して送信してしまうと、そのサイトの運営者に悪意は無くとも、悪意ある第三者によって情報を抜き取られたり、改ざんされてしまうのです。
今までは何か情報を入力するページのみSSL化するのが一般的だったのですが、最近は全てのページをSSL化する動きがあり、これを「常時SSL化」と言います。何も情報を入力しないならSSLにする必要無いんじゃないの?と思うかもしれませんが、全てのページをSSLにする事でCookieへの不正アクセスを防止する事ができます。
また、GoogleがHTTPSページ(SSL化したページ)を優先的にインデックスに追加すると公式に発表した事によって更に注目されました。やはりGoogleとしても安全なページをユーザーに利用して欲しいんですよね。
サイト内にHTTPのパスが残っていると駄目
さて、SSLの手続きを済ませたのにhttpsで接続しても「このサイトへの接続は完全には保護されていません」と表示されてしまいました。
いわゆる緑色の鍵アイコンが表示されていなかったのです。

ふと、Chromeのディベロッパーツールを開いてみるとコンソールにメッセージが来ていました。

どうやらページ内の画像パスが「HTTP」のままだというのです。という事でこの画像パスを「HTTPS」に置き換えていきます。
Search Regexで一括置換
僕が利用しているCMSはWordPressなので、「Search Regex」というWordPressプラグインを使用しました。このプラグインは記事の本文やコメントの内容を一括で置換する事ができるので画像やリンクのパスを一気に変更してしまうというわけです。
新規プラグインから検索するか、上記リンクからダウンロードしてサーバーにアップして、SearchRegexをインストールしましょう。
インストールし終わったら、WordPressの[ツール]内に[Search Regex]という項目が増えているので、クリックします。
(このプラグインで一度置換してしまうと元に戻す事が出来なくなるので、作業する前にバックアップを必ず取るようにしておきましょう。)

SearchRegexのページが開くので、それぞれ設定していきましょう。
| Source | どの部分から文字の検索を行うのか。デフォルトは「Post content(記事本文)」 |
|---|---|
| Limit to | 一度に置換する上限。デフォルトは「No limit(上限なし)」 |
| Order By | 検索した文字列の並べ替えの方法。Ascending(昇順)かDescending(降順)で選ぶ事ができる。 |
| Search pattern | 検索する文字列 |
| Replace pattern | 置換する文字列 |
ちなみに検索する文字列は「http://」だけにしてしまうと外部リンク等も全て取得してしまうので自分のサイトのリンクを入力するようにしましょう。

「Search」を押すと「Search pattern」に入力した文字列を探してリスト表示してくれます。
「Replace」を押すと、置き換えた際にどのようになるのかリスト表示してくれます。このボタンを押しても置換されるわけでは無いので注意が必要です。
「Replace & Save」を押すと特に何か表示されるわけではありませんが、置換が実行されます。
その他のロゴ等は手動で変更
その他の細かいロゴのパスやヘッダー画像は自分でさっと変更ます。Chromeにどの画像パスがHTTPのままなのか表示されるのでそれを見ながら変更していきました。
全てパスが変更し終わった頃にはちゃんと「保護された通信」になりました。



コーディング時のclass名の省略はどこまでして良いのか?「img / btn / ttl / desc / thumb」
SourceTreeを開くと「’git status’ failed with code 69:’」というポップアップが出てくる場合の解決方法
GUIコンパイラのPreprosを使ってSassのコンパイルを行う
Nuxt.jsでのページ遷移設定方法(Vue Routerやnuxt-link)|Nuxt.jsの基本
Macで.pemを使ってAmazon EC2インスタンスへSSH接続する方法
ターミナルでGitを使う時に最低限覚えておきたいコマンド
Dart Sassを使う上で1番基本的なネストやアンパサンドの書き方|Dart Sass入門
Google Maps APIをローカル開発環境で使用するときの制限設定方法
Nuxt.jsの「layouts」を使用してレイアウトの共通化を行う方法|Nuxt.jsの基本
ウェブサイト上で簡単にWYSIWYGエディタを実装する「TinyMCE」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
AlfredのTerminal機能を使って、すばやくターミナルコマンドを実行する
BetterTouchToolのライセンス・料金まとめ(BetterSnapToolやBTT Remoteによる無料ライセンス)
個人ブログにコメント欄は必要なのかどうか
機能の差が分かりにくいDropboxの「選択型同期」と「同期の無視」の違い
Path Finderの「閉じたタブの開き直し」ショートカットキーを他アプリに合わせる
Path Finderで選択したファイルを特定アプリケーションで開く方法
iStat Menusの「ディスク」アイコン表示と設定
HTML・CSSでWebサイト制作を行う際に必要なツール
記事用のスクリーンショットを撮るときに気をつけていること
Macで画面上に図形やフリーハンドで注釈が書ける「DemoPro」