さくらレンタルサーバーのWordPressサイトを常時SSL化

Facebook にシェア
Pocket

Let’s Encryptによる無料常時SSL化をおこなったが、

  1. サイトを置いている、さくらレンタルサーバーの独自仕様によってリダイレクトが特殊なものになっている
  2. サイト内の画像リンクにhttpが含まれていることに気づかなかった

という2点で、本来は大して時間がかからないもので堂々巡りしてしまった。

概要

昨年度あたりからサイトの常時SSL化を行うネット全体のトレンドが存在している。特にGoogleが検索評価の際にSSL化していることを加点に加えると発表しその流れは加速している。

本サイトはこの文章を書いている現在さくらレンタルサーバーに存在しているが、そこがサイトを無料でSSL化できるサービスを導入したので当サイトもそれを試した。

何となく難しそうだと思われるが、実際に作業をするとSSLサーバ証明書発行(Web上で申請して30分以内くらいで発行完了になる)にかかる時間を除くと、作業を知っている人間なら早ければ5分程度で終了する内容である。

SSL化の後にhttpをhttpsに置換するリダイレクトの作業を、さくらレンタルサーバーは専用のプラグインで対応している。私はさくらレンタルサーバーを離れたときのことを考えてこのリダイレクトの作業をhtaccessへのコード記述とWordPressの設定でやろうとしたのだがとりあえずこれが良くなかった。結局独自仕様に付き合うのは手入力でも変わらないことに気づいて、プラグインの仕様を受け入れて作業終了した。

作業

SSLサーバ証明書の発行

さくらのコンソールにドメインに関するページがあるがそこから発行することが出来る。発行にはしばらく時間がかかり(だいたい30分程度)終了するとメールで発行完了の知らせが来る。

リダイレクト

htaccessへのコード追加

この状態でブラウザで自分のサイトを見るとhttpでもhttpsでもアクセスできるようになっているはずである。ただしhttpは今までと変わらないが、httpsで見るとサイトの構成が崩れているのが確認できる。サイト内のリンクはhttpのままなので上手く構成できていないのである。

これをリダイレクトしてサイト内のどのURLもhttps化するのが「常時」SSL化である。さくらレンタルサーバーはこれのために専用プラグインを用意しているが、私は他のレンタルサーバーに移行するときのことを考えてもっと一般的な手法を使うことにした。

htacccessファイルにこの記述を加えてやれば通常はコードの処理は終了である。「URLがhttpsでなければhttpをhttpsに置き換えてください」という内容になる。

ところが、さくらレンタルサーバーは

「さくらのレンタルサーバ」にて提供しているウェブサーバ (Apache) は、80番ポートを使用するものと、443番ポートを使用するものとの 2種類に分けられます。
一般的に、80番ポートは「http://」、443番ポートは「https://」という形式でアクセスされ、「https://」についてはプロクシとして動作します。
そのため、同じディレクトリへのアクセスであっても、その際に呼び出されるウェブサーバ が異なると、CGIプログラムやウェブサーバが.htaccessなどのファイルを読み込む際、挙動に違いが生じます。  – SSL利用時の注意点

この仕様があるおかげでこれでは機能しない。

htaccessはこのように記入し、更にwp-config.phpに

と記入する。これに関しては以下のサイトを参考にした。

さくらのレンタルサーバでHTTPS(SNI SSL)な独自ドメインのWordpressサイトを構築する際の注意点 – Qiita

更にWordPressのダッシュボード画面から設定→一般と進み、サイトURLがhttpになっているのをhttpsに直す。

……のだが、自分はこの一連の流れを見て「これだったらプラグインを素直に使用した方が良い」と判断してプラグインを導入した。

理由の一つは「ここまでさくら仕様にするなら、他のレンタルサーバーに移行するときの変更の労力は同じ」なのと、もう一つはプラグインを外せば元の状態に戻るからである。自分で手入力で入れた変更って後で直そうと思った時に覚えている自信が無いのでこういう変化の区切りをはっきりさせておいた方が都合が良いと判断したのである。

Search RegexによるURL置換

WordPressプラグインのSearch RegexでhttpになっているURLをhttpsに置き換える。

サイト内リンク

http://www.example.comをhttps://www.example.comに置き換える。

外部リンク

このサイトでも使用しているAmazonリンク生成ツールにカエレバというサイトがある。このルーツで作った昔のリンクはAmazonからの画像のURLがhttpになっている為、このリンクを含むサイトを開くとURLに暗号化されていないという表記が出てしまう。

この為http://ecx.images-amazon.comをhttps://images-fe.ssl-images-amazon.comに置き換える必要がある。

終わりに

終わってしまえばすぐに終わることに時間をかけてしまって虚しい。余談であるが、常時SSL化が済んでも暗号化されているという表記が出なくて焦ったがその理由は冒頭にも上げた通り「サイドバーにある画像リンクがhttpのままだったから」であった。死にたい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です