自己署名証明書からnginxウェブサーバーのLet's Encrypt証明書に移動しようとしています。
現在、すべてのリクエストをhttp/80
にhttps/443
にリダイレクトします。これは、少し前に作成した自己署名証明書を使用します。
今-私が理解していることから、Let's Encryptはポート80にリクエストを出します(webroot
のcertbot
オプションを使用しているため)。これらの要求はリダイレクトされるため、証明書の生成が失敗します。
ポート80でリッスンする次のサーバーブロックでこれを実現しようとしました。
server {
listen 80;
server_name sub.domain.tld;
server_tokens off;
location /.well-known {
root /var/www/letsencrypt;
}
location / {
return 301 https://$Host$request_uri;
}
}
ただし、/.well-known
へのリクエストはhttps/443
にリダイレクトされます。
http/80
へのリクエストを除くすべてのリクエストをhttps/443
から/.well-known/
にリダイレクトするにはどうすればよいですか?
これを試して:
server {
listen 80;
server_name sub.domain.tld;
server_tokens off;
root /var/www/letsencrypt;
location /.well-known {
try_files $uri $uri/ =404;
}
location / {
return 301 https://$Host$request_uri;
}
}
仮想サーバーにtry_files
エントリがなかったため、/.well-known
に送信されたリクエストをどう処理するかがわかりませんでした。