Let’s Encryptが意外なくらいあっけなかった

Let’s Encrypt 知ってますか?

2016年4月に正式に開始された認証局である。自動化された発行プロセスにより、TLSのX.509証明書の発行を無料で行っている。
https://ja.wikipedia.org/wiki/Let%27s_Encrypt

無料でサーバ証明書の発行が受けられるサービスです。
「なにをいまさら」と言われそうですが、メールサーバのTLS対応のためにサーバ証明書が必要になったので今回はLet’s Encryptを使ってみることにしました。

証明書発行はコマンド1回だけ

最後の1行が証明書発行のためのコマンドになります。
コマンド実行したらメールアドレスの入力と規約のAgreeを求められるのそれぞれキーボードから入力するだけです。
今回は --standalone というオプションをつけていますが、このオプションを指定すると一時的に letsencrypt-auto スクリプトが80版ポートを利用してサーバの認証のためのwebサーバとなります。
なので、すでにapache, nginxなどで80番ポートを利用している場合は該当サービスを一時停止する必要があります。

なお、letsencrypt-auto --help ですがここでスクリプトを利用するために足りないライブラリなどがある場合は自動的にパッケージインストールしてくれます。

作成された証明書

証明書は以下の4つが /etc/letsencrypt/live/[domainname] 以下にシンボリックリンクが作成されます。
それぞれ本体は archive ディレクトリ以下にあるのですが、通常は live ディレクトリ以下のシンボリックリンクへのパスを設定しておけば更新時などに書き換える必要がありません。

  • サーバ証明書(cert.pem)
  • 中間証明書(chain.pem)
  • サーバ証明書と中間証明書を結合した証明書(fullchain.pem)
  • 秘密鍵(privkey.pem)

あとはPostfixやDovecotなどの設定にそって証明書を設定するだけです。

これでメールサーバのTLS対応があっという間に終わりました。
通常のSSLサーバ証明局を利用する場合は自分で秘密鍵を作成、CSRを作成、認証局に申請といろいろと手順が必要となるんですが、Let’s Encryptはあっけないくらい簡単でした。

注意

ただし、 Let’s Encryptで作成したサーバ証明書の有効期限は90日 となりますので、気をつけないと有効期限切れになっちゃいます。
更新作業もコマンドから簡単にできるので更新時期が近づいたらまた紹介します。