無償SSL証明書
FreeBSD Apache環境下でのcertbotのインストール
#pkg install py39-certbot-apache
依存関係でpy39-certbotもインストールされる
証明書の発行
DocumentRootが/usr/local/www/apache24/dataである場合証明書の発行が上手行かない、httpd.confの設定のせいかもしれない、承認専用ディレクトリを作成して対応する、専用ディレクトリをwwwtmpとして
# cd /usr/local/www # mkdir wwwtmp # chown www:www wwwtmp
/usr/local/etc/apache24/httpd.confに以下設定を追加
<Directory "/usr/local/www/wwwtmp"> Reduire all granted </Directory>
Apache再起動の上、下記コマンドを実行
#certbot certonly --webroot -w /usr/local/www/wwwtmp -d www.DOMAIN.com
バーチャルホストがある場合、続けてそのホストに対して証明書を発行する
#certbot certonly --webroot -w /usr/local/www/wordpress -d blog.DOMAIN.com
/usr/local/etc/letsencrypt/live/www.DOMAIN.comにfullchain.pemとprivkey.pemが作成される、バーチャルホスト用には /usr/local/etc/letsencrypt/live/blog.DOMAIN.comにfullchain.pemとprivkey.pemが作成される
Apache2.4の設定
/usr/local/etc/apache24/extra/httpd-ssl.confの設定
バーチャルホストがある場合以下の範囲をバーチャルホストの数コピーする
<VirtualHost _default_:443> : </VirtualHost>
メインのホストの設定
<VirtualHost _default_:443> DocumentRoot "/usr/local/www/apache24/data" ServerName www.DOMAIN.com:443 : SSLCertificateFile /usr/local/etc/letsencrypt/live/www.DOMAIN.com/ fullchain.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.DOMAIN.com/ privkey.pem" : </VirtualHost>
バーチャルホストの設定 コピーした箇所を
<VirtualHost *:443> DocumentRoot "/usr/local/www/wordpress" ServerName blog.DOMAIN.com:443 : SSLCertificateFile /usr/local/etc/letsencrypt/live/blog.DOMAIN.com/ fullchain.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/blog.DOMAIN.com/ privkey.pem" : </VirtualHost>
先頭が#の行はコメントなので削除可能
設定したhttpd-ssl.confファイルを/usr/local/etc/apache24/httpd.confにインクルードする
方法1:httpd.confに下記1行追加
Include etc/apache24/extra/httpd-ssl.conf
方法2:/usr/local/etc/apache24/Includesディレクトリにhttpd-ssl.confをコピー
Apacheを再起動
#apachectl restart
証明書の更新
Let’SEncryptの証明書の有効期間は3か月,期限30日前から更新可能、更新後Apacheの再起動、またはリロードを行う
# certbot renew # apachectl restart または # service apache24 reload
証明書の自動更新
毎週自動で更新を実行する、ただし実際に更新できるのは、期限30日前から
/etc/periodic.confを下記内容で作成
weekly_certbot_enable="YES"
certbotインストール時に/usr/local/etc/deriodic/weeklyに500.certbot-3.9が作成されるため有効になる、合わせてApacheのリロードをおこなうために/usr/local/etc/letsencrypt/renewal-hooks/deploy/reload_apache24.sh作成して実行権を与える
#!/bin/sh service apache24 reload
# chmod 755 reload_apache24.sh
証明書の削除
# certbot delete
削除したい証明書を選んで削除する
コメントを残す