さくらのレンタルサーバにLet’s EncryptのSSL環境を導入してみた:改訂版

以前、さくらのレンタルサーバにLet’s Encryptでhttps環境を実現しようとやってみたのだが、当時の状況では別途root権限を持ったLinuxサーバを用意する必要があり、あまり現実的ではなかった。
参考:さくらのレンタルサーバにLet’s EncryptのSSL環境を導入してみた | ちゃたろうふぁんくらぶ
が、今週の2017/10/17にさくらのレンタルサーバ側で公式にLet’s Encryptのサポートが始まり、別途管理者権限のあるサーバを用意しなくても、さくらのレンタルサーバで無料https環境を導入できるようになった。
参考:「さくらのレンタルサーバ/マネージドサーバ」 無料SSL証明書「Let’s Encrypt」簡単設定機能の提供開始のお知らせ | さくらインターネット
参考:無料SSLサーバー証明書 Let’s Encrypt – レンタルサーバーはさくらインターネット
ので、ここではLet’s Encryptを利用した無料SSL環境を導入するためのメモを備忘。と言いつつ、さくらの公式サポートにほとんどの情報が書かれているので、ここでは見通しと参考リンクを貼るのがメイン。

公開URLの検討

まず諸々の作業を始める前に、サイトのURLをどう扱うか考える必要がある。httpsを使うか/httpを使うか、wwwサブドメインを使うか/wwwサブドメインを使わないか、の二択で計4パターンのURLが考えられる。つまり、内のサイトなら
http://chatarou.net/
https://www.chatarou.net/
https://chatarou.net/
https://www.chatarou.net/
と言う4パターンで、どれを採用するかと言う話になる。まあ基本はhttpsサイトにする前提なので、httpのURLは基本使わないと思うが、http接続をしたときにhttps側に自動で転送するか否かと言う判断は必要になる。
このうち、wwwサブドメインを使うか否かでまず初期設定を考えておく必要がある。wwwサブドメインを利用しない場合はあまり考えなくてもいいのだが、wwwサブドメインを利用する場合はさくらインターネットサーバコントロールパネルで適切な設定をしておかないと、環境変数Pathがうまく通らず、サイトのデザインなどが崩れることがあるようだ。
詳しくは、
参考:【WordPress】www付きのドメイン利用中で、SSL化する時の手順 – さくらのサポート情報
を参考にして、サブドメインの設定をしておく必要がある。

Let’s Encryptをさくらインターネットサーバコントロールパネルから導入

特に難しい作業はない。
【無料SSL】サーバコントロールパネルからの導入手順 – さくらのサポート情報
を参考に、Let’s Encrypt環境の導入、サーバ証明書を発行してもらえばいい。
うちの場合、発行申請をしてサーバ証明書の発行までは10分ほどで済んだ。

WordPressでSSLを利用するためのプラグインの導入

実際にうちのようなWordpressで構築しているサイトでhttpsを利用するためにはこの後サイトアドレスの設定などいくつか変えなくてはならず、失敗するとhttp⇔httpsで無限ループしてしまうケースがあるなど若干煩わしかったりするのだが、さくらインターネットではここでwordpress用プラグインを提供すると言う非常にスマートな方式で解決している。とても便利なので、利用しない手はない。
参考:【WordPress】常時SSL化プラグインの使い方 – さくらのサポート情報
プラグインは、さくらインターネットのレンタルサーバ上でしか動作はしないが、Wordpressのインストールに関してはさくらインターネットサーバコントロールパネルからクイックインストールしたか/自前でインストールしたかは問わず利用できるので非常に便利だ。
ここまでやると、https環境の利用が一応完成し、https://www.chatarou.net/でもhttps://www.chatarou.net/でもサイトに繋がるようになる。

【2017.10.30追記】
※このプラグインの使い方が分からず記事を更新してしまっていたようだ。このプラグインは【設定】→【SAKURA RS SSL】と進み実行するもので、具体的には下記のhttpアクセスを自動でhttpsアクセスへ転送するWordPressのサイトURLをhttpsに変更するを実行するプラグインのようだ。ので、プラグインを導入しなくとも、下記手順通りに進めれば充分である。.htaccessとかに二重で同じ手続き書かないように、このプラグインの導入はかえって気をつけないといけなさそうだ。
【2017.10.30追記ここまで】

httpアクセスを自動でhttpsアクセスへ転送する

最後に、最初の公開URLの検討で書いた、http/https併用するのか、httphttps転送するのか、の設定をする。併用する場合は何も設定しなくてもいい。転送する場合は、.htaccessで転送設定を書く。
参考:.htaccessによるアクセス制御(暗号化(SSL)を有効としている場合、暗号化しているページへ誘導したい) – さくらのサポート情報
これで全設定が完了し、サイトをhttps運用できるようになる。

【2017.10.28追記】
以下、もう少しやった方がいい作業があったので追記。

WordPressの記事内のリンクをhttpsに変換する

サイトURLをhttpsに変更したことで、自分の記事の中にある参考記事リンクや、画像リンクがhttpのまま残ってしまうものがある。httphttpsへ自動転送の.htaccessを書いてあれば画像が見えないことは無いのだが、サイト内にhttp画像リンクが混在していると暗号性担保の面でブラウザに文句を言われるので、一括で過去記事のリンクを修正してしまう。
修正には、WordPressプラグインのSearch Regexを利用する。一括で、「https://www.chatarou.net」→「https://www.chatarou.net」などを実行すればいい。正規表現など活用しなくても十分置き換えは可能。

WordPressのサイトURLをhttpsに変更する

WordPressのサイトURLを変更しておかないと、テーマファイルなどをhttpのURLのまま読み込んでしまい、cssが適用されないページが表示されてしまったりするので、変更しておく。
【設定】→【一般設定】の中にある、「WordPress アドレス (URL)」と「サイトアドレス (URL)」をhttpsに変更する。ここの変更は上記までの変更を行ってからでないと、変な無限ループに陥ったりするので気を付けて最後にやること。

【2017.10.28追記ここまで】

その他メモ:
上記設定でhttps環境が使えるようになるのだが、https環境の場合、サイト内の画像などを外部サイトから持ってきている場合、セキュリティが担保出来ていないと文句を言われたり、外部サイトの画像が表示されなかったりのトラブルがある。実際、うちのサイトもトップページでflickr badgeと言うflickrで上げた写真をランダムで表示するブログパーツを利用しているのだが、現時点でうまく動作していなさそうだ。
ので、うちでは解決するまでの間、http/httpsは併用運用して転送運用は控えている。また、この解決には結局flickrに上げてある写真ファイルをさくらインターネットに上げなおし、画像をランダムに表示させるようテーマファイルに修正を加える必要がありそうなので、また時間を見て修正作業を行おうと思う。

対策完了したのでオマケメモは終了

コメントを残す