「Let’s Encrypt の使い方 – Let’s Encrypt 総合ポータル」を参考にしながら、Let’s Encryptの設定方法を調べてみました。インストールするところは、スクリプトを用意して対応できます。
例えば、次のような内容の install_lets_encrypt.sh を用意します。
domain="www.example.jp" webroot="/var/www/sites/${domain}/htdocs" d="/usr/local/certbot" f="certbot-auto" dl_url="https://dl.eff.org/${f}" cmd="${d}/${f}" if [ ! -e ${d} ]; then sudo mkdir -p ${d} fi sudo wget -O ${cmd} ${dl_url} sudo chmod a+x ${cmd} ${cmd} certonly \ --webroot -w "${webroot}" \ -d ${domain} \ -m webmaster@${domain} \ --agree-tos # for SELinux semanage fcontext -a -t cert_t "/etc/letsencrypt(/.*)?" restorecon -FR /etc/letsencrypt
下記でインストールができます。
$ sudo sh install_lets_encrypt.sh
生成された鍵ファイルを /etc/httpd/conf.d/ssl.conf で使うように指定します。手元の環境ではfullchain.pemは使わなくて良いようだったので指定してません。
SSLCertificateFile /etc/letsencrypt/live/www.example.jp/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.example.jp/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/www.example.jp/chain.pem
更新時は、コマンド実行部分を変更した update.sh を用意し、/usr/local/certbot/update.sh に置いたとします。
#!/bin/sh domain="www.example.jp" webroot="/var/www/sites/${domain}/htdocs" d="/usr/local/certbot" f="certbot-auto" cmd="${d}/${f}" ${cmd} certonly \ -n \ --renew-by-default \ --webroot -w "${webroot}" \ -d ${domain} if [ $? -eq 0 ]; then /sbin/service httpd graceful else /bin/logger -p user.err "Let's Encrypt Certificate Renewal Failed: ${domain}" fi
実行権を付与してから、crontabで /usr/local/certbot/update.sh を登録します。
$ sudo chmod 755 /usr/local/certbot/update.sh $ sudo crontab -e
内容は例えば、下記のような感じにします。
59 23 19 * * /usr/local/certbot/update.sh > /dev/null 2>&1