当サイトのSSL化がほぼ終わりました。正月からかなり時間がかかりましたが、どのような手順で行ったのかを備忘のために残しておこうと思います。
バックアップを取る
SSL化を始める前に、万が一に備えてバックアップを取っておきましょう。普段使っている方法でいいと思います。
yukkun20は普段からUpdraftPlusを使っているので、それでバックアップしました。
使い方についてはこちらのサイトが参考になりました。
スターサーバーで無料常時SSL化
ネームサーバーをスタードメインに変更
独自ドメインのサイトを運営している場合、ネームサーバーをスタードメインに移す必要があります。
yukkun20が使用しているドメイン”yukkun20.com”はもともとファイアバード(現スターサーバー)で取得したものだったので、ネームサーバーの変更は不要でした(勘違いして、旧ファイアバードからスターサーバーに変更したせいでサイトが落ちた)。スターサーバー、旧ミニバード、旧ファイアバード、旧クローバーの場合はなにもしなくていいと思います。
独自SSL設定
スターサーバーの場合、ボタンを一つクリックするだけなので楽勝です。ただし反映されるまで1時間程度待つ必要があります。いい時間になったら、新しいサイト「https://www.○○.○○」にアクセスしてみましょう。サイトに接続できたらOK。
ただし、Wordpressをサブディレクトリで展開している(サイトのホームページとWPのインストールディレクトリが異なる)場合は、サブディレクトリ(インストールディレクトリ)にアクセスする必要があります(サイトの404ページが表示されることもありますが別にOK)。
※例:うちのサイトの場合、ホームページはwww.yukkun20.comですが、WPのインストールディレクトリはwww.yukkun20.com/wp/です。この場合、https://www.yukkun20.com/wp/にアクセスします。
リダイレクト設定
旧サイトにアクセスした場合も、自動的に新サイトに飛ばされるようにします。スターサーバーの場合は、.htaccessを書き換えるのがいいようです。
- サーバー管理ツールから、「FTPアカウント設定」 > 「(該当ドメイン)選択」 > 「WebFTPログイン」にアクセス
- .htaccess(↓)を探します
- 左端のアイコンをクリックし、.htaccessをダウンロードしておきます(何かあった時のバックアップ用)
- 左から2番目のアイコンをクリックして編集します
# END WordPress の直下に、以下の通り記載します。
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
- 旧サイトのどこかのページ(http://~)にアクセスしたら、新サイトの対応するページ(https://~)にきちんと飛ばされることを確認します。
WordPressの設定を変更する
- サイトのダッシュボード > 「設定」 > 「一般」の「WordPress アドレス (URL)」と「サイトアドレス (URL)」をどちらもhttp://からhttps://に変更します。
- 旧サイトのトップページにアクセスしたら新サイトのトップページに転送されることを確認
内部リンクを書き換える
これまでWordpress内に貼った内部リンクの宛先を切り替えます。もちろん手作業でやってもいいのですが、時間がかかりすぎますので、いくつかの方法を併用することで手間を大幅に省略することが出来ます。
WordPress内
本文中のデータやカスタムフィールドのデータは、Wordpressのプラグイン「Search Regex」で一括して変換することが出来ます。
Search patternとReplace patternにこんな感じで入力すればOK。はじめに「Replace ≫」をクリックして、変換箇所のプレビューをしておきましょう。ただし、変換箇所が多くなるとエラーが出て失敗します(変換箇所が何カ所あるかは「Search ≫」をクリックすれば分かります)。yukkun20の場合、変換箇所が34000ほどあったので失敗しました。
その場合、「サーバー管理ツール」にアクセスし、「PHP環境設定」 > 「(該当ドメイン)選択」 > 「php.inin設定変更」 > 「その他の設定」 >「 memory_limit」 の数値を変更するとうまくいくようです。yukkun20も2000Mにしたらうまくいきました。
また、アフィリエイトリンクなど、外部の画像を読み込んでいる場合、修正が必要です。ここ2年くらいのアフィリエイトリンクはSSL対応していますが、それ以前のは非対応なので…。yukkun20の場合、Amazon関係の修正が必要でした。
Search pattern |
Replace pattern |
http://ecx.images-amazon.com |
https://images-fe.ssl-images-amazon.com |
http://ecx-z.images-amazon.com |
http://ws-fe.amazon-adsystem.com |
https://ws-fe.amazon-adsystem.com |
http://ir-jp.amazon-adsystem.com |
https://ir-jp.amazon-adsystem.com |
http://www.assoc-amazon.jp |
https://www.assoc-amazon.jp |
http://ws.assoc-amazon.jp/ |
https://ws-fe.amazon-adsystem.com/ |
その他のリンクの修正方法についてはこちらが詳しかったです。
関係ありそうな部分をどんどん置換していきます。
HTMLページ
プラグインが使えないので、フリーソフト「複数のHTML&テキストファイルを一括置換 TextSS.net」で一括変換。
「検索する文字列」を「http://www.○○.○○」、「置換する文字列」を「https://www.○○.○○」として実行します。
ここまでで、無事SSL化がすんでいればいいのですが…
だめだったorz
その他
残っている非SSL化リンクを手作業で修正していきます。yukkun20の場合は主にこんな感じでした。
- ダッシュボード > 「リンク」 > 「すべてのリンク」 > 「リンクの編集」
リンクにローカルの画像を絶対パスで使用している場合、https://に変更します。
- TablePressで作成したテーブル内の内部リンク
https://に変更します。
完成
これでほぼ全てのページがSSL化されているはずです。ただし、ニコ動を埋め込んでいると、そのサムネイル画像がSSL対応していないのでそのページのみ混在コンテンツの警告が出ます。。正直ニコニコ動画の仕様の問題だと思うので、当面は諦めます。というわけで、SSL化完了!