Basic認証のサイトでLet's Encryptの証明書を自動更新させる
開発環境とかで証明書を取得するとなるとLet's Encrypt証明書になりますよね。しかし、Basic認証サイトだとそのまま認証されないとで少し手を加える必要があります。
2021/08/16
#Apache
環境
apache 2.4 ドキュメントルートを www とする
ドキュメントルート直下の.htaccess に追記する
<IfModule mod_rewrite.c>
RewriteEngine on
# www 統一
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# SSL通信を強制化
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
.well-known に.htaccess と index.html を作成する file:www/.well-known/.htaccess Require all granted
$ touch index.html
Let’s Encrypt の証明書を取得する
$ certbot certonly --webroot -w /var/www -d www.[domain] -d [domain]