wordpressのSSL化
Chromeが、SSLに対応してないHPは常時警告出す方針だとか言うので
放置していたSSL導入をやってみた。
といっても、lolipopサーバなので、無料で導入できる共有SSL利用です。
なので、導入自体は、特に問題なし。
ちなみに、手順を間違えると、DB書き換えたりしないと戻せなくなるので、
手順はしっかり理解してからやった方が良いです。
事前に、Google Authenticator とか SiteGuard WP Plugin とかのsecurity関係の
プラグインは、事前に止めてから作業した方が事故が少なくて済むと思いますよ。
1 SSL化を確認する
導入するとこんな感じで表示されるので、そこが共有SSLのHPになる。
サイトURLがhttp://〇〇〇.main.jp/wp の場合
共有SSLを利用したwebサイトURLは、https://main-〇〇〇.ssl-lplipop.jp/wp です。
2 共有SSLのサイトに接続してみる
導入してしまえば、サイトとして動いているので、Wordpressが表示されるかを、まず確認する。
多分、いろいろ移動させてない状態なので、文字だけしか見えないと思うが、見えればOK。
見えない場合は、SSL化されてないので、次に進む前に設定等を要確認。
3 WordPressに共有SSLのURL(https://~)を設定する
問題ない場合は、wordpressに設定する
ダッシュボード → 設定 を開くと出てくる WordPress アドレス (URL) と
サイトアドレス (URL) を 共有SSLのURLに変更する。
4 サイトの確認
多分表示が下みたいにエクスクラメーションマーク表示になるので、
この場合は、SSL混在化の解消をやる必要がある
Chromeの例
5 SSL混在化の解消
多分、内部的に大量のhttp表示されているものがあるので、httpsに修正する必要がある。
1 プラグインを使う
Search Regex を使うと良いとあったので、インストールして使用
起動するとこんな感じなので、
- Source(検索・置換の対象を指定) → Post content
- Limit to(一度に置換する上限数) → No limit
- Order By(置換対象を検索した時の並び順) → Ascending
- Search pattern(検索する文字列) → SSL 化する前の URL
- Replace pattern(置換する文字列) → SSL 化後の URL
- Regex ⇒ 選択不要
こんな感じに設定する
終わったら、プラグインは使わないので、停止して削除で良い。
2 DBの直接修正
プラグインでは、残念ながら、下記の表示のように鍵にエクスクラメーション表示だったので、
余計怪しいサイトにw
Firfoxの例
しょうが無いので、lolipopにログインして、DBを直接いじることにした。
サーバーの管理 → データベース → phpMyAdmin
phpMyAdminを起動する。
(1)ログイン後、左側のDB一覧から自分のWordpressのDBをクリックして、phpMyAdmin上部に
というか、メイン画面上部に、自分のサーバー名とデータベース名が表示されている状態にする
(2)検索タブをクリックして、データベース内検索 に移行する。
- 検索する単語や値 (ワイルドカード: “%”): 自分のSSL化前のURL
- 検索条件: 一応、 にした
- 検索するテーブル: 全検索を選択
- 検索するカラム: 空白のままで
これで検索すると、テーブル一覧と検索結果が表示されるので、該当するテーブルに入って、
該当カラムを確認する
(3)データベースを選択した状態で、SQLタブを選択して、SQLを実行
UPDATE `DB名`.`テーブル名` SET `カラム名` =REPLACE (カラム名,”置換前語句”,”置換後語句”);
(4) (2)と(3)をくり返せば、最終的に全部返還が終わるはず
3 リンクの修正
再度接続しても、鍵表示が変わらないので、リンク先を確認する
Chromeで見ている場合は、F12 を押すと、右側にエラーの原因を表示してくれる
「Mixed Content」と書かれた部分に、httpが混在している具体的なURLが書かれています。
Chromeでなくても、ディベロッパーツールを開けば見れると思うので、好きなの使えば良いと思う。
で、修正が終わって、下記ののように、表示されればOKです。
(上:Firefox 下:Chrome)
6 リダイレクト設定
このままだと、グーグル先生に別サイトだとおもわれてしまうので、リダイレクト設定をしておく
.htaccessの一番最初にこの記述をすればOK 他の記述より前にこれを単独で記述する
正規表現じゃない所は、当然自分のHP表記に合わせること
#301
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://main-〇〇〇.ssl-lplipop.jp%{REQUEST_URI} [R=301,L]
</IfModule>
301はコメントなので、特になくてもOK
最後に リダイレクトトラッカー に旧サイトを入れてみて、きちんとリダイレクトされるかどうかを確認
OKならば、キャッシュをクリアしたブラウザーでも確認してみる。
大丈夫なら、多分リダイレクトもOKです。
以上で、設定終了です。
最後にSNSとかで、自分のサイトを登録している場合は、そこの変更もしておこう。