Let’s Encrypt の certbot で証明書を取得・更新する際に、ドメインの所有権の確認としてポート80番へ Let’s Encrypt のサーバーからアクセス可能かチェックされます。
この時、certbot で –standalone を指定していると certbot自身がWEBサーバーとなりますが、apache等を停止させておく必要があります。
–webroot を使用すると、既存のWEBサーバーを使用しますが、
http://証明書のドメイン/.well-known/acme-challenge/
へ Let’s Encrypt のサーバーからアクセスできることが必要です。ここでは、apacheの設定について説明します。
certbot で –webroot を指定する場合は、-wオプションでWEBルートディレクトリを指定します。certbot実行時に、このディレクトリ下に一時的に .well-known/acme-challenge ディレクトリが作成されます。
このディレクトリを、http://サーバー名/.well-known/acme-challenge/ でアクセスできるように apacheで設定します。
ここでは例として、WEBルートディレクトリを /var/www/letsencrypt とすると、次のように設定します。
WEBルートディレクトリを作成しておきます。
mkdir -p /var/www/letsencrypt//etc/httpd/conf.d/letsencrypt.conf を次のように作成します。
Alias /.well-known/acme-challenge/  /var/www/letsencrypt/.well-known/acme-challenge/
<Directory "/var/www/letsencrypt/.well-known/acme-challenge/">
    AllowOverride None
    Options None
    Require all granted
    <LimitExcept GET OPTIONS>
        Require all denied
    </LimitExcept>
</Directory>apacheに反映します。
systemctl reload httpdcertbotを実行します。
証明書の取得の場合は、次のように実行します。
既に Let’s Encrypt で証明書を取得済みで、これから –webroot での運用に切り替える場合は、以降に記載の証明書更新の場合の作業のみでいいです。–webroot指定での新たな証明書の取得し直しは不要です。
-dで指定するドメインは、各自のドメインに合わせてください。
実行で、/var/www/letsencrypt下に 一時的に .well-known/acme-challengeディレクトリとその下にファイルが作成され、 Let’s Encrypt のサーバーからアクセスされます。
certbot certonly --agree-tos --webroot -w /var/www/letsencrypt -d test.example.com証明書更新の場合は、次のように実行します。
certbot renew --webroot -w /var/www/letsencrypt参考
Certbotでstandaloneからwebrootに切り替える方法 | .LOG
Let’s Encrypt と Apache で https
Let’s Encrypt 証明書発行でつまずいたこと①
Certbot – ArchWiki
 
  
  
  
  
コメント