Let's EncryptでNode.jsなサイトにSSLを導入した話

SSLというとお高いものだったわけですが、それも昔の話。2016年は無料でSSLが使える時代になりました。

誰でも使えるパブリックベータが公開されてからだいぶ経つのでご存知の方も多いかと思いますが、Let's Encryptを使うことで、無料でSSLを使うことが出来るようになりました。

このサイトは、Nginxで80番を受け、GhostというNode.js製のCMSにポートで回しているわけですが、Ghostには直下にStaticなファイルを置くことが出来ません。Let's Encryptのドメイン認証のためには、ドメインのrootディレクトリを指定する必要があるのですが、それができなかったので、Nginxでどうにかしたメモです。

.well-knownディレクトリ

Let's Encryptの導入方法は日本語でも沢山の情報がありますので省略します。

ドメイン認証時にrootディレクトリを指定すると書きましたが、Let's Encryptはその中に「.well-known」というディレクトリを作り、その中で認証作業を行います。よって、SSL認証用のディレクトリを作り、「/.well-known」のアクセスだけそっちに振ります。

こんな感じです。

あとは、
./letsencrypt-auto --webroot -w /var/www/ssl/example.com/ -d example.com
のようにコマンドを実行してあげればOKです。

さいごに

自分、最近WordPressよりもGhostを使っていることの方が多いので、忘れないようにメモしておきます。

Google的にも、http2な速度的にもSSL最高なので、じゃんじゃん導入していきたいと思います。