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_cf
DNS認証でプロバイダは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-file
key.pemの場所ここな -
--fullchain-file
fullchain.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で証明書を自動更新
-
--cron
cron中に発行済み証明書を全部更新してや
# 毎週日曜日 23時13分に発行済み証明書を全部更新して欲しいんや
13 23 * * 0 /root/.acme.sh/acme.sh --cron > /root/.acme.sh/cron.log
/etc/cron.weekly
とか/etc/cron.monthly
に入れてもええで!!
あでゅ〜