Let's Encryptクライアントのacme.shを使ってワイルドカード証明書を取得してNginxでHTTPSするで。Apacheでもそんなに変わらんで。
設定やら何やらを入れても10分くらいで終わるで。
ほな行くでーー。
スーパードゥ!
sudo su -
インストール
curl https://get.acme.sh | sh
インストール直後はacme.shの設定を読み込む必要があるで。
. ~/.acme.sh/acme.sh.env
設定
DNS認証で証明書を発行するための設定や。今回はCloudflareを使ってるけど、他にも色々対応しとるで。
詳しくはAutomatic DNS API integrationを参照や。
~/.acme.sh/account.conf
+ CF_Key='CloudflareのAPIキー'
+ CF_Email='Cloudflareアカウントのメールアドレス'
証明書発行
-
--issue証明書発行してや -
--dns dns_cfDNS認証でプロバイダはCloudflareや -
-dドメインこれでよろしく
acme.sh --issue --dns dns_cf -d example.com -d "*.example.com"
※120秒の待ち時間があるで。
証明書をインストール
今回はNginxで使うから近く(/etc/nginx/ssl/*/)に置くで。
# ドメインごとのディレクトリを作るで
mkdir -p /etc/nginx/ssl/example.com
-
--install-cert発行済み証明書を(Web)サーバーにインストールしてや -
-dドメインこれでよろしく -
--key-filekey.pemの場所ここな -
--fullchain-filefullchain.pemの場所ここな -
--reloadcmd終わったらこれ実行してな(renew時にも使われるで)
acme.sh --install-cert -d example.com -d "*.example.com" \
--key-file /etc/nginx/ssl/example.com/key.pem \
--fullchain-file /etc/nginx/ssl/example.com/fullchain.pem \
--reloadcmd "service nginx force-reload"
Nginxの設定
毎度お馴染みNginxのSSL設定やで。ググってや。
ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com/key.pem;
証明書の更新
-
--renew-all発行済み証明書を全部更新してや
acme.sh --renew-all
cronで証明書を自動更新
-
--croncron中に発行済み証明書を全部更新してや
# 毎週日曜日 23時13分に発行済み証明書を全部更新して欲しいんや
13 23 * * 0 /root/.acme.sh/acme.sh --cron > /root/.acme.sh/cron.log
/etc/cron.weeklyとか/etc/cron.monthlyに入れてもええで!!
あでゅ〜