Let’s Encrypt

曇り今日は水曜日なのでモーニングへ。 久々に相席じゃない普通の席に座ることができた。 ニュートンの続きを読んで、今日は「海の不思議」「胃」についてを読んだ。
モーニング

このブログで使用しているSSL証明書の有効期限が9月17日までと迫っている。 昨年、さくらのSSLでRapidSSLが新規1年間無料キャンペーンで取得して、このブログをSSL化した。 それの更新が迫っていた。 検索エンジン対策などでHTTP→HTTPSへは簡単だけど、証明書がない状態でHTTPS→HTTPにすることはできない。 なので、結局SSLを維持するしか方法がないのだけど、年間の更新料を払うのは別にいいのだけど、サーバー設定が面倒だなぁ、証明書の更新手続きが面倒だなぁ、と思っていて、けっきょく間際の1週間前になってしまった。
前からSSLの無料認証局の「Let’s Encrypt」というのが話題になっており、お金の問題ではないけれど、それを使ってみたい気持ちはあった。(更新するとしても年間1,500円なので)
ただ使い方を学ばないといけないのでなかなか手を付けてなかったが、ようやくやることに。

やってみて、ものすごい簡単だった。
GITが必要なので、サーバーにGITをインストールして、落としてきたソースコードにコマンドを打つだけ。 簡単に言うと、これだけでSSL証明書が発行される。
詰まった部分が1つだけあって、nginxが80ポートを使っているのでドメイン認証の部分で引っ掛かり証明書が作れない自体が起こった。 が、nginxを落としてから実行したら問題なく出来たし、webrootというコマンドを付与すれば、nginxが80ポートを使ったまま使うこともできた。

また、それとは別に、以前の証明書は1枚でwww有無の両方のパターンが含まれていたけれど、Let’s Encryptの証明書は別々に取得しなくてはならない。
サーバーが持っているIPアドレスは1つなので、SNIという技術を使わなくては、1IPで複数証明書を処理できない。 nginx側は当然対応しているのだけど、古いブラウザを切り捨てることになる。 まぁ個人ブログだし、古いブラウザやガラケー切り捨てても全く問題はないのだけど。

無事にLet’s EncryptのSSL証明書を導入できて、これでひとまず3ヶ月間は安泰となった。 また3ヶ月後に更新手続きをしないといけないのだけど、それまでに完全自動化できる仕組みを勉強しておかなくてはならない。
Let’s Encryptは本来完全自動化できるように作られているので、毎回手動で発行&設定するのは馬鹿らしい。