今回は先日行った常時SSL化の経緯や手順について備忘録的に書いてみたいと思います。
Let’S Encryptの登場
先日も書いた通りSSLはインターネット上でデータを暗号化して送受信する仕組み(プロトコル)で、重要なデータを暗号化して、サーバとPC間での通信を安全に行なうための仕組みです。これまでSSLを導入するとなると、認証機関に取得のための手数料を支払い必要がありました。認証のレベルによってコストは変わるものの、安いものでは数千円、企業がする高いものですと数十万するものまであります。たいていは1年ごとに更新が必要となり、個人が導入するには敷居の高いものでした。
ところが2016年に開始されたLet’s Encryptという認証局の登場よって大きく潮目が変わります。Let’s EncryptはすべてのWebサーバへの接続を暗号化することを目指したプロジェクトで、多くの場合無償で提供されています。これを機にホスティングサービスの会社も、Let’s EncryptのSSL認証を無料で提供するところが増えました。小生が今回導入したSSLもやはりLet’s Encryptのものでした。
レンタルサーバ選定
これまでの運用環境
2015年11月にWordpress でブログの運営をするようになって以来、サーバに関しては、ずっとネットオウル社が運営する「ウェブクロウPlus」というサービスを利用してきました。「ウェブクロウPlus」は月額128円(税抜)という低価格ながら、10Gのディスク容量があり、Wordpressを動かすうえで必要なMySQL、PHPが動作するサーバでした。
スペック的には問題はないものの、無料SSLの使用ができない点のみが不満となっていました。
ネットオウルのサービス変更
そんななか2017年7月にネットオウルは、それまでいくつかあったホスティングサービスをスターサーバという一つのサービスに集約していくことを発表します。小生が利用していた「ウェブクロウPlus」は、「スターサーバ エコノミー」というサービスに移行するという方針が示されます。しかし「スターサーバ エコノミー」と「ウェブクロウPlus」ではいくつかサービス内容が異なります。小生が関係するところですと以下のような違いがあります。
ウェブクロウPlus:無料独自SSLなし、MySQLあり
スターサーバ エコノミー:無料独自SSLあり、MySQLなし
この違いについてネットオウルでは、旧ウェブクロウPlusの利用者は、ウェブクロウPlusにあって、スターサーバ エコノミーにない機能は移行後も引き続き利用できるようにするとアナウンスしていました。アナウンス通りであれば、スターサーバに移行後はSSLが利用できるはずでした。
しかし1年以上たつ現在でも、スターサーバへの移行は実現しないままです。この件に関して、今年の5月にウェブクロウのサポートに問い合わせたところ、移行の時期は未定との答えが返ってきました。
サーバ移転を決意
いつまでたってもスターサーバへの移行が実現しませんので、当ブログのSSL化も実現しません。SSL化を実現するためには、以下の選択肢が考えられます。
- 有料のSSLを取得する
- 無料SSLが利用可能なサーバへ移転
最初に考えたのはサーバ移転の必要ない、有料SSLを取得することでした。有料のSSLには様々なものがあります。ウェブクロウのサーバり利用可能な有料SSLのうち、もっとも安いものですとCoreSSLというものが年額1,350円(税抜)で利用できます。
しかしサーバの運用費と合わせると費用は、これまでの倍近い金額になります。それだけの金額を出すのであれば、無料SSLが利用可能でもう少しスペックの良いサーバが借りられそうです。そこでサーバの移転をするという結論に至りました。
まず最初に候補に挙げたのは、ネットオウルが運営するスターサーバライトというサービスです。しかし月額利用料は250円(税抜)と、これまでのほぼ倍となります。そこで少し調べてみたところ、GMOインターネットグループが運営する、Coreserverというホスティングサービスを見つけます。
比較検討
これまで利用していた、ウェブクロウPlusとスターサーバライト、Coreserver-MINIのサービス内容を比べてみます。
Webcrow Plus | Starserver Light | Coreserver-MINI | |
---|---|---|---|
月額費用(税抜) | 128 | 250 | 198 |
年間費用(税抜) | 1,536 | 3,000 | 2,376 |
ディスク容量 | 10G | 50G | 60G |
ファイル上限数 | 無制限 | 無制限 | 300,000 |
転送量上限(月)※1 | 50G | 150G | 無制限 |
独自ドメイン使用可能数 | 20 | 50 | 50 |
MySQL | 1 | 1 | 10 |
独自無料SSL | – | 〇 | 〇 |
メールアカウント | 200 | 500 | 200 |
ディスク容量はこれまでも10Gが使えたものの、3割も使っていませんでしたので、それほど小生の場合はポイントになりません。一方で小生が着目したのはMySQLの使用可能数です。これは一つのサーバで運用できる、Wordpressの数とイコールになります。スターサーバでは1つしか使えませんが、Coreserverでは10個となっています。本ブログ以外にもランニングブログなど3つのブログをそれぞれ別々のサーバで運用していますが、これらをまとめて一つのサーバに集約できそうです。
一方で気になったのはCoreserverのファイル数の上限が、300,000ファイルという点です。数えたことはありませんが本ブログは写真が多いこともあり、かなりのファイル数がありそうです。またほかのブログもまとめてとなると、その分のファイル数もかさみそうです。
そこでファイル数をカウントしてみると、本ブログで70,000弱、他のブログではそれぞれ8,000ほどのファイル数であることが分かりました。すべて合わせても100,000ほどですので、今後の増加分を考えても当分はファイル数の上限に引っ掛かることはなさそうです。
そこで今回は、Coreserverへの移転をすることとしました。
実際の作業
移転作業
まずはSSL化の前に、サーバの移転作業を行う必要があります。Wordpressサイトのサーバ移転はこれまで何度かやっていますので、同じ手順で実施します。
- 旧サーバの全ファイルをダウンロード
- 旧サーバのDBデータをエクスポート
- 新サーバに全ファイルをアップロード
- 新サーバにDB作成
- 新サーバにDBにデータをインポート
- WordPressのConfigファイルのDB情報を新サーバに合わせて書き換え
- ドメインのDNSを新サーバのIPに変更
一番時間がかかるのがファイルのダウンロードとアップロードですが、それ以外はそれほど時間はかかりません。
SSL化手順
前章までで旧サーバと同じ状態を新サーバ上に構築することができました。SSL化という意味ではここからが本番です。手順としては以下の通りです。
- CoreserverのコントロールパネルでSSL化
- WordPressのURL設定を変更
- 投稿記事中にある自サイトのURLをhttpsに変更
- 背景、ヘッダ画像等を指定しなおし
- カスタマイズ箇所にURLの記述があればhttpsに変更
最初の作業
まずはCoreserverのコントロールパネルのドメイン設定で、「無料SSL」を選んで確定します。
サーバ側の設定はこれだけですので、実に簡単です。これでLet’S EncryptのSSLが設定され、期限が来れば自動更新してくれます。
次にWordpressの設定変更です。変更するのは[設定]->[一般] にある”WordPress アドレス (URL)”と”サイトアドレス (URL)”の2か所です。
“http://”で始まっているURLを”https://”に変更し保存ボタンを押します。
Search Regexで記事中のURL書き換え
ここまでの状態でサイトにアクセスすると、URLがこれまでの”http://”から”https://”に変わっているはずです。しかしURLの脇にエクスクラメーションマークなどの警告表示が出ていると思います。サイトには記事中に画像等を張ったりしています。しかしこの段階では記事中の画像はSSL化していないものを参照した状態になているので、ブラウザ側で警告を出しているのです。
この対策には記事中で参照している画像のURLをすべて書き換える必要があるのですが、記事数が多い場合は現実的ではありません。しかしWordpressにはSearch Regexという便利なプラグインがあります。
上図のように入力し「Replace & save」を押すだけですべての記事のURLの書き換えが行われます。
盲点だった作業
前章までの段階で作業が完了と思ったのですが、実際にはサイトにアクセスした際にブラウザに表示される警告は消えませんでした。そこで調べてみると、以下のものがSSL化していない画像を参照していました。
- 背景画像
- ヘッダ画像
- ウィジェットの画像
これらは、Wordpressの設定画面で再度同じ画像を指定すれば、URLの書換えが行われます。あとはカスタマイズしている部分に、SSL化していない画像を指定しているところがあれば書き換えます。当サイトでは404ページで非表示している画像がありましたので、書換えを行いました。
以上でSSL化が完了しました。最後の部分は想定外の部分もありトライ&エラーでの試行錯誤となりましたが、なんとか無事に完了させることができました。
元々ブログがレンタルサーバーにある場合は
想像より簡単に引っ越しができるように
文章を読むと感じますが
最後の盲点ポイントはめんどいのでしょうね
あさとさん
おっしゃるように現在のブログがレンタルサーバ上にある場合は、ブログシステム自体は変更になりませんので移行は比較的容易です。一方でどこかのブログサービスからどこかへ移動となると、ブログサービスごとに仕様が異なりますし、他社への移転を考えていないところもありますのでその場合は少し手間がかかります。
私の場合も、seesaaからwordpress に移行した時は少し大変でした。移行当初は画像だけはもともとのseesaaを参照させておき、本文が新サーバという状態でした。当時は今回の記事で紹介した一括での置換ツールがなかったので、一つ一つ修正していきましたのでかなり時間がかかりました。現在では本文で紹介したような便利なツールもありますのでWordpressへの移行も随分と楽になりました。