ブログのHTTPS化にてこずる さらに証明書を1う無駄にしてしまった…

当ブログをHTTPS化したのは2017年9月10日だった。
当ブログはなんと1年かかってなんとかHTTPS化したのだった。
というのはサーバ仕様とリダイレクトの関係でなかなか難しかったのだ。
今回は当ブログではなくもうひとつのブログ https://www.tomtomsvoice.jp/voice/ を HTTPS 化した。
こちらはさらに複雑な条件が重なり難儀したがなんとか完了したのだった。
レンタルサーバの廉価なサービスはそれぞれ独特の仕組みがあってそれに合わせるのが難しい。
 https://www.tomtomsvoice.jp/voice/

台風来てるし時間が出来たのでHTTPS化に取り掛かる

管理人にとってちょうど良い塩梅に時間の確保ができた。
さらに台風が接近しており出かけようにも出かけられない状況なのだ。
これって HTTPS 化をしてね、ということなのだろうと取り掛かった。

前回、HTTPS化は前回当ブログで1度やっているので、条件違いを考えにれてもこの作業の所要時間として1日あれば終わるだろうと見積った。
結局、HTTPS化の途中で様々なトラブルに見舞われてまる2日かかった。

さらに有料で取得した SNI SSL の証明書データを紛失し無駄にしてしまった。
トラブルが重なったのと夜間で頭が回らなかったからだ。

最終的にはサーバ業者であるさくらインターネットが最近提供開始した無料の Let’s Encrypt という SNI SSL 証明書を使用した。
ちなみに当ブログは有料の SNI SSL でジオトラストの RapidSSL を使用している。

PHPバージョンが引っかかる

当ブログは HTTPS 化の際に PHP のバージョンを7.1の最新版に上げた。
バージョンを上げる際に動作に関してチェックしてみたが問題はなかった。
というのはさくらインターネットが提供している WordPress プラグインを使用するのであれば5.6以上が条件となっているからだ。

だが https://www.tomtomsvoice.jp/voice/ の PHP バージョンを7.1に上げてみるとTop画面が表示されない。
WordPress 自体は同じバージョンだし、テーマも同じものを利用しているのにかかわらずだ。
動かないのはあかん、ということで7.1はあきらめ、動作する中で最新の5.6に上げた。
レンタルサーバを借りた時期が1年ほど異なるのでレンタルサーバ自体に違いがあるのだろう。

今回のHTTPS化のミソ

今回HTTPS化した https://www.tomtomsvoice.jp/voice/ であるが当ブログとはちょっと異なる環境で動いている。
当ブログはドメイン=ブログアクセスのURLとなっているが、今回 HTTPS 化した https://www.tomtomsvoice.jp/voice/ は異なる。

ドメイン自体の index.html は別に存在している。
さらにディレクトリがいくつかあり、次のようになっている。

  • ドメインのルート(Webサイト1)
    index.htmlが存在する
  • ブログ
    ブログ用のディレクトリがある
  • Webサイト2
    ブログと同じレベルに代表ディレクトリ
    代表ディレクトリ以下のそれぞれのディレクトリに11サイト
  • Webサイト3
    ブログと同じレベルにディレクトリ

つまり HTTPS 化しなければならない対象がブログ1つ、Webサイトが合計13、という構造となっている。

wwwがあるかないか

当ブログはwwwのサブドメインは付けていない。
いろいろやってみるとさくらインターネットの場合はwwwが付いていないほうが様々な手間が省けるという感想だ。

今回 HTTPS 化した https://www.tomtomsvoice.jp/voice/ は www を付けたタイプとなっている。
もちろん www はあってもなくてもアクセス自体は可能だ。
しかしGoogle関係の登録が www 付きとなっているのでそのまま www 付きで HTTPS 化しなければならない。

HTTPS 化を行ってみると www がついているかどうかで SNI SSL 自体も異なり結構面倒だ。
それにさくらインターネットのサーバコンソールでは SNI SSL 導入では別々の管理となってしまう。

これとは別にブログではなく、Webサイトでは www なしを www 付きにリダイレクトする必要がある。

www付きでジオトラストのRapidSSLを契約する

思えばこの時にキチンと SNI SSL 証明書を保存しておけばよかった。
これが今回の失敗である。
www 付きでジオトラストの RapidSSL を契約しサーバにインストールした。

SNI SSL 自体はキチンと動作したのだが、サーバ側の www ありとなしの設定が .htaccess とうまく噛み合わない。
いろいろ試していたのだがWordPress自体のURLの指定をいじってしまったのだった(HTTPS+wwwなしにしてしまった)。
これが今回の最大の間違いだった。

このため管理画面に入れなくなってしまった。
セキュリティ関連のプラグインを停止してみたりしてみたが結局入れなかった。
こういう時にWordPressには便利な手段がある。
それは FTP や SCP が使えるなら簡単なことで、プラグインディレクトリの名前を変えてしまうことだ。
すると WordPress は想定していたプラグインのディレクトリが見当たらないのでプラグインを無いものとして動作する。
これは覚えておくと良い。

結局SNI SSLをインストールし直し

管理画面に入れなくなってしまったので www あり側と www なし側に無料の SNI SSL 証明書を再度インストールした。
たまたまさくらインターネットで無料の SNI SSL のサービスが始まったところだったので助かった。
この部分のリカバリが長かったのだ。

これでやっと管理画面にアクセスできるようになった。
ここからはより慎重に作業してなんとか動作するようになってきた。
さくらインターネット謹製の WordPress 用プラグインも導入した(本当はNGのようだが)。

まだリダイレクトがおかしくて WordPress は大丈夫だが通常のWebサイトはリダイレクトが効いていない。
そこで頭の中をよく整理して .htaccess の設定を3箇所に分けた。
ひとつはサイト全体用、もうひとつは WordPress用、最後はWebサイト用の3つだ。

これによりやっと思った通りの動作を行うようになった。
ここまで長かった…。

おかげでジオトラストの RapidSSL がひとつ無駄になってしまったが無料の SNI SSL で動作しているので良しとしたい。
結局まる2日かけて HTTPS化したことになる。
サーバ環境と自分のサイトの関係をよく整理しておかないといけない。
少々反省である。

今回はこのへんで
では