私は人々がhttpを介して自分のサイトを使用することを防ぎ、彼らに安全な接続を使用させたいと考えています。私のhttps証明書は、(webrootオプションを使用して)letsencryptによって発行されます。つまり、http経由で接続すると、/.well-known/acme-challenge/
の静的コンテンツが提供されます。他のすべてのリクエストは、httpsを使用するようにリダイレクトする必要があります。私nginx.confnginx:httpを介して1つのディレクトリにサービスを提供しながらhttpsにリダイレクトする方法は?
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com admin.example.com;
location /.well-known/acme-challenge {
root /app;
access_log on;
try_files $uri $uri/ =418;
}
return 301 https://$server_name$request_uri;
}
の関連部分に続いて、このHTTPSのアップグレードが正常に動作し、意図したように、すべてのユーザーがHTTPS接続を取得します。問題は、nginxがletsencryptからのものであっても、letsencryptが失敗する原因となったものであっても、すべてのリクエストをアップグレードすることです。ファイルを提供しようとしません。
リクエストがhttpによってexample.com/.well-known/acme-challenge/[HASH]
に送信された場合、ファイルが見つかった場合にそのファイルが提供されるか、4134エラーが返され、他のすべてのリクエストは同時に/.well-known/acme-challenge
で始まるhttpsにアップグレードされます。何か提案ありがとう
これは私が持っていたものであるように、それは「もともと」、夜遅くになっている必要がありますが、何かが私は私が見つけたリソースに基づいて、それを変更して動作しませんでした。今すぐ起きて、これは明らかに期待どおりに動作します!私にトンネルからの光を見せてくれてありがとう;) – japrescott