はじめに
公式の certbot
がありますが、本内容は lego
を使用します。
https://github.com/go-acme/lego
バージョン:lego version 2.6.0 linux/amd64
なお、本手順では、認証ファイル方式の説明になります。
Apache
バーチャルホストの設定に認証ファイル用のエイリアスを追加します。
この辺は、好みの問題なので、ドキュメントルート配下に直接置く場合は、設定不要です。
Alias /.well-known /etc/lego/webroot/.well-known
<Directory "/etc/lego/webroot/.well-known">
Order deny,allow
Allow from all
</Directory>
証明書リクエスト&生成
lego --accept-tos \
--path /etc/lego/.lego/ \
--http \
--http.webroot /etc/lego/webroot/ \
--domains "your-domain.com" \
--email your-mail@gmail.com \
run
/etc/lego/.lego/certificates/
に鍵ファイルや証明書が出力されます。
証明書を破棄
lego --accept-tos \
--path /etc/lego/.lego/ \
--http \
--http.webroot /etc/lego/webroot/ \
--domains "your-domain.com" \
--email your-mail@gmail.com \
revoke
証明書を更新
lego --accept-tos \
--path /etc/lego/.lego/ \
--http \
--http.webroot /etc/lego/webroot/ \
--domains "your-domain.com" \
--email your-mail@gmail.com \
renew \
--days 30
--renew-hook "/bin/systemctl reload httpd"
※「--days 30」は、「renew」に対してのオプションなので、指定する位置に気をつける。
中間証明書について
以下コマンドでファイルを分割する
cd /etc/lego/.lego/certificates
csplit -z -f your-domain.com. -b "%02d.pem" your-domain.com.crt '/BEGIN CERTIFICATE/' '{*}'
rm ./your-domain.com.00.pem
mv ./your-domain.com.01.pem ./your-domain.com.chain.pem