Nginxのlocationを使用して、ロードエージェントとLet's Encrypt証明書の再署名の問題を解決します.
現在、あるプロジェクトではhttpsが使用されています.この証明書がlet's encryptから発行された場合.では、3ヶ月ごとに再署名する必要があります.
しかし、このプロジェクトはロードされ、リクエストはサブサーバx/y/zに逆エージェントされます.
このように
このとき.well-knownディレクトリのリクエストもx/y/zに転送されます.Let's encryptで再署名したときに失敗しましたが、どうやって解決しますか?
このときlocationを追加して、Nginxがこのディレクトリに遭遇したとき、逆エージェントルールを実行しないでください.
これで/.well-knownリクエストはこのサーバの/PATH/TO/WEB_に転送されます.ROOT/.well-known行きます.これで更新が正しいです.
acme.sh
で再署名する場合は、http上の.well-known
ディレクトリ検証にアクセスする必要があります.しかし、このプロジェクトはロードされ、リクエストはサブサーバx/y/zに逆エージェントされます.
このように
server {
listen 80;
listen 443;
ssl on;
ssl_certificate /path/to/domain.fullchain.cer;
ssl_certificate_key /path/to/domain.key;
server_name domain.com
location / {
proxy_pass http://newstproxy;
proxy_set_header Host $host;
proxy_set_header Connection close;
proxy_connect_timeout 60s;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
このとき.well-knownディレクトリのリクエストもx/y/zに転送されます.Let's encryptで再署名したときに失敗しましたが、どうやって解決しますか?
このときlocationを追加して、Nginxがこのディレクトリに遭遇したとき、逆エージェントルールを実行しないでください.
location ^~ /.well-known {
root /PATH/TO/WEB_ROOT;
}
これで/.well-knownリクエストはこのサーバの/PATH/TO/WEB_に転送されます.ROOT/.well-known行きます.これで更新が正しいです.