ググってみると
kusanagi ssl –email <メールアドレス>
のコマンド一発でSSL化できる、とあったのでやってみたら見事轟沈(悲・・・。で、色々試行錯誤した結果、どうにか体裁が整ったので後世のためにメモ。
ハマりポイントその1:httpsでアクセスすると404エラー
kusanagiコマンドでLet’s Encryptの証明書インストールやconfへの秘密鍵のパス追加は上手くいったっぽいのですが、実際にhttpsでアクセスすると404エラーになってしまいます。
エラーページ自体はちゃんとssl化されているので、NginxがWordPressのパスを見つけられなくなってしまっているのでは?、と当たりを付け、httpのconfとhttpsのconfのdiffを取ってみたところ、見事ビンゴ。
ウチのサイトはWordPressをサブディレクトリに置いているため、httpの方は
try_files $uri $uri/ /hogehoge/index.php?$args;
みたいな設定にしていたのですが、https版はデフォルトの
try_files $uri $uri/ /index.php?$args;
になっていたので修正。
これでhttpsでも記事が見えるようになりました。
ハマりポイントその2:ヘッダ画像がhttpのまま
WordPressの「一般設定」にある
- WordPressアドレス(URL)
- サイトアドレス(URL)
をhttpsのURLに変えればサイト内のURLは須らくhttpsになる、と思ったら画像関係がhttpのままであることが発覚。
このような場合、Search RegexプラグインでURLをhttpからhttpsへ書き換えるのが王道みたいですが、本サイトで使用しているSimplicityというテーマには「内部URLをSSL対応」するという素敵機能があるらしく、「カスタマイズ」の「その他」でチェックを入れて反映してみたところ、残念ながらヘッダ画像には対応していませんでした・・・。
まぁこれについてはヘッダ画像を保存しなおすことで無事httpsに変わったので、大した問題ではなかったのですが、テーマ内で使っているヘッダ画像が置換対象にならないというのは灯台下暗しな感じですね(苦笑。
そんな訳で少々手間取りましたがブログのhttps化に無事成功した訳ですが、ブログサイト外のコンテンツは相変わらずhttpのままなので、こちらはまた日を改めて対策を検討しようかと思います。
p.s. ちなみに、kusanagiコマンドって正確には引数がもう一つあって
kusanagi ssl –email <メールアドレス> <プロファイル名>
のようにプロファイル名を指定することが出来るんですが、今回、プロファイル名を省略したのがそもそもの敗因だった気がしてきました。
当初プロファイル名が分からず、「とりあえずプロファイル名省略してみて駄目ならまた考えよう」の結果、中途半端に上手くいってしまった感があるので、今後SSL化を志す方々は是非とも手を抜かずにやって頂ければと思います(なお、プロファイル名は /etc/kusanagi.d/profile.conf の中にちゃんと書いてありました。。。)