Let’s Encrypt (dehydrated) でSSL証明書発行&自動更新

今回はNginxで行っていますが、ApacheだったらApacheの設定ファイルを同じように変更すればいいだけです。

dehydratedをGitからインストール

cd /opt
git clone https://github.com/lukas2511/dehydrated.git
cd dehydrated
cp docs/examples/config config
vim config #WELLKNOWNのコメントアウトを外す
echo "ドメイン名" > domains.txt
mkdir /var/www/dehydrated
chmod 755 /var/www/dehydrated
chown -R nginx:nginx /var/www/dehydrated


設定変更

以下を/etc/nginx/conf.d/www.confの対応するドメインのlisten 80に追加

location ^~ /.well-known/acme-challenge/ {
    alias /var/www/dehydrated/;
}


アカウントを作成して、証明書発行

./dehydrated --register --accept-terms
./dehydrated -c --accept-terms


証明書設定変更

最後にSSLにしたいドメインのlisten 443のssl_certificateとssl_certificate_keyを変更し完了

ssl_certificate /opt/dehydrated/certs/ドメイン名/fullchain.pem;
ssl_certificate_key /opt/dehydrated/certs/ドメイン名/privkey.pem;


cron設定

/root/script/letsencrypt_with_dehydrated.sh

#!/bin/bash
cd /opt/dehydrated
./dehydrated --cron && service nginx restart

/etc/cron.d/letsencrypt_with_dehydrated

0 4 * * 1  /root/scripts/letsencrypt_with_dehydrated.sh > /tmp/letsencrypt_with_dehydrated.log 2> /tmp/letsencrypt_with_dehydrated_err.log

(毎週月曜日04:00に更新確認)

登録

crontab /etc/cron.d/letsencrypt_with_dehydrated