サーバ設定

Let’s Encryptを既にNginxが動いているホストに導入してみる

Apacheとか、まだhttpdが動いていないとかだと話はもっと簡単なはずです。試してないのでわかりません。
Nginxもそのうち楽になるかな。更新自動化の関係で結局この手順に落ち着くような気がしなくもないけど。

とりあえず、

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help

とかすると、yumとかのパッケージマネージャを使って必要なライブラリとかを入れてくれます。
そして証明書の作成へ。このまま定期実行すると更新もできるはずです。

./letsencrypt-auto certonly --renew-by-default -d example.com --webroot --webroot-path=/path/to/webroot

letsencryptクライアントが/path/to/webroot/.well-known/acme-challenge/にファイルを書いてLet’s Encryptのサーバとの間で認証が行われ、成功すれば/etc/letsencrypt/live/example.com/に色々証明書が書かれます。

  • privkey.pem : 秘密鍵
  • cert.pem : サーバ証明書
  • chain.pem : 中間証明書
  • fullchain.pem : サーバ証明書と中間証明書をまとめたもの

あとは、Nginxの設定ファイルでprivkey.pemfullchain.pemをいつも通りssl_certificate_keyssl_certificateに指定してreloadしてやればok.

※実際のファイルは/etc/letsencrypt/archive/example.com/あたりにかかれてシンボリックリンクが張られますが、実際問題/live/の方のファイル(リンク)を使えば更新時に楽できます。どうせ90日以内に更新しなきゃいけないし。