Let's EncryptのアクセスURLだけをApacheのベーシック認証から除外する

Let's EncryptがSSL証明書を発行するときには、Let's Encryptのクライアントはそのサイトにアクセスできることを調べます。ひとつ注意しないといけないのは、ベーシック認証をサイト全体にかけている場合に、Let's Encryptのクライアントがアクセスできなくなってしまうということです。

ここでは、Let's EncryptのアクセスURLだけを、ベーシック認証から除外する方法を解説します。

Apacheの設定ファイルで以下のように設定してください。

<Location / >
  AuthType Basic
  AuthName "Secret Zone"
  AuthUserFile /var/www/.htpasswd
  Require user foo
</Location>

<Location /.well-known/acme-challenge >
  Require all granted
</Location>

Let's Encryptが使うパスだけは、接続をすべて許可してください。

/.well-known/acme-challenge

がLet's Encryptが使うパスです。

「/」がベーシック認証のパスになっていますが、その後ろの設定で「/.well-known/acme-challenge」のパスに対しては、すべての接続が許可されます。

関連情報