NginxのLet’s Encryptが自動更新できなくて困ったのでメモ。
まず、Nginx上でうまくLet’s Encryptが自動更新できない場合に確認すべきこと。
httpsにリダイレクトをしているか?
http://対象ドメイン/.well-known/acme-challenge/にアクセスした際に、403Forbiddonが返ってくるか?
この二つを確認する。
http://対象ドメイン/.well-known/acme-challenge/にアクセスした際に403が返ってくると更新がうまくいかない。
Nginxの設定によっては「/.well-known」といったドットがついたフォルダは隠しフォルダとして認識されるため、403が返ってしまう。
ここにアクセスできるようにしてあげる必要がある。
以下のような記述をする。
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /var/www/html; #ルートパス
}
また認証する際はアクセスをhttpでしてくるので、httpsにリダイレクトしている場合は注意。
httpの方に/.well-known/acme-challenge/にアクセスしたときのみリダイレクトをしないように書くか、
httpsの方に/.well-known/acme-challenge/が403にならないように記述をしてあげる。
アクセスした際に403が404になっていれば無事設定ができている。
また、万が一更新できずにhttpsが切れてしまった場合に
httpsへリダイレクト設定していると更新がうまくいかない可能性があるので、
httpに書いておいたほうが無難かと思います。
コメント