Let's Encrypt
無償で使用できるサーバー証明書

インストール・設定

インストール

CentOS 7であれば、epelリポジトリにパッケージがあるのでそれをインストールする。

# yum install certbot

証明書の取得

Webサーバーが既に起動している環境で証明書を取得することを前提として書きます。

# certbot certonly --webroot -w /var/www/vhosts/jp -d www.example.jp -d example.jp -w /var/www/vhosts/com -d www.example.com -d another.example.com

-wに続く/var/www/vhosts/jpなどはwebのドキュメントルート
-dに続くwww.example.jpなどはホスト名
一つのドキュメントルートで複数のホスト名が関連付けられる
一度に複数のサイトの証明書を作成できる
実行すると初回にはメールアドレス(通知用)の入力を求められるので入力します。
正常に生成されると/etc/letsencrypt/live/以下に-dで指定したホスト名でディレクトリができて
その中に4つのファイルへのリンクが作成されます。

証明書の更新

cronなどでcertbot renewを実行する
cronで実行すると要らないログが残るので「certbot renew -q」としてメッセージをなくして実行させている
証明書を使用するサービスは証明書を再読み込みするために再起動させる必要がある
renewal-hooks を利用すると可能になる
Let's EncryptのSSL証明書更新時にサービスを再起動する