#!/bin/sh
DOMAIN=ここに適応させたいドメイン
WEBROOT=ウェブルートの場所
EMAIL=メールアドレスを入力
ROOTPATH=$(
cd $(dirname $0)
pwd
)
docker run \
--rm \
-v ${ROOTPATH}/etc:/etc/letsencrypt \
-v ${ROOTPATH}/log:/var/log/letsencrypt \
-v ${ROOTPATH}/../www/:/var/www/ \
certbot/certbot certonly \
--webroot -w $WEBROOT \
-d $DOMAIN \
-d www.${DOMAIN} \
-m $EMAIL \
--agree-tos -n
# --test-cert
このコードをコピペしてファイル保存。
必要箇所を入力。応じてディレクトリの変更
あとはbashとして実行するだけでLetsEncryptの新規作成が可能だ。
ボリュームで仮想呼び出ししてるので、ホスト側にデータが作成される。
動作テストしたい場合は–agree-tos -nを–test-certにする。
ホスト側にcertbotのインストールは不要でdockerのみで完結する。
もちろん、更新作業もdockerで行う
#!/bin/sh
ROOTPATH=$(
cd $(dirname $0)
pwd
)
docker run \
--rm \
-v ${ROOTPATH}/etc:/etc/letsencrypt \
-v ${ROOTPATH}/log:/var/log/letsencrypt \
-v ${ROOTPATH}/../www/:/var/www/ \
certbot/certbot renew
# nginxのリロード
docker exec -i webのコンテナ名 service nginx reload
こちらもファイルに保存する。実行はクロンを設定しておく。
必要に応じて最後の行のnginxのリロードの設定をする。
以下、cron設定の一例
30 9 1 * * root sh /usr/local/libexec/lets_encrypt_renew.sh > /dev/null 2>&1
もちろん実行時は80ポートを使えるようにして、ウェブページを作成しておくこと。また、volumeの設定で、ルートディレクトリを指定しておく必要がある。
参考
https://qiita.com/inakadegaebal/items/29d21d1f5a904a6ba92d
https://qiita.com/tkykmw/items/9b6ba55bb2a6a5d90963
https://qiita.com/kawaz/items/308240f2dfb2e08c1729
http://www.hakopako.net/entry/2017/10/01/000000
コメント