私はWSGI
サーバで動作するWebアプリケーションを持っています。アプリケーションは、例えば、OpenIDの接続IDプロバイダエンドポイントがあります。これらのエンドポイントへNginxはよく知られているエンドポイントをリダイレクトします
/oidc/.well-known/openid-configuration
/oidc/.well-known/simple-web-discovery
/oidc/.well-known/webfinger
要求は、各エンドポイントのために必要なタスクを実行する私のプロジェクトでは一部の機能にマッピングされています。私は自分のアプリケーションを実行することができ、すべての要求は、定義された機能によって正常にマッピングされ、処理されます。
httpsの後ろのパブリックIPでアプリケーションをホストすると、チャレンジが開始されます。このため私はnginx
を使用してアプリケーションへのアクセスをプロキシします。 nginx
は、私のアプリケーションをhttps上のパブリックIP経由でアクセス可能にします。ここに私のnginx
設定ファイルのキーセクションです:
server {
listen 80;
listen [::]:80 default_server;
server_name localhost;
root /home/user/myApp;
include /etc/nginx/default.d/*.conf;
location/{
proxy_pass http://my_app;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-URL-SCHEME https;
}
}
server {
listen 443 ssl;
server_name localhost;
root /home/user/myApp;
ssl_certificate /home/user/cacert.pem;
ssl_certificate_key /home/user/privkey.pem;
include /etc/nginx/default.d/*.conf;
location ~ /\.well-known { allow all; }
location/{
proxy_pass http://my_app;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-URL-SCHEME https;
}
}
すべてのコールが要求されている/私はどちらかの取得そのため、(実際にはconfigにlocation ~ /\.well-known { allow all; }
はそれを解決しようとする試みである)/.well-known/*
への要求を除いて、正しく投稿404
または403
のエラーです。例えば
、nginx
エラーログ内の1件のエラーメッセージが読み:
open() "/home/user/myApp/oidc/.well-known/openid-configuration" failed (13: Permission denied), client: X.X.X.X, server: localhost, request: "GET /oidc/.well-known/openid-configuration HTTP/1.1", host: "X.X.X.X"
(IPアドレスがマスクされている)
いくつかのポイント:
- 私は私を実行していますアプリケーションは
sudo
特権を持つので、アプリケーションはすべてのパスにr/wアクセスできます。 - 実際には、
/home/user/myApp/oidc/.well-known/openid-configuration
というパスは存在しません(それで、私も404
エラーが発生します)。
/oidc/.well-known/openid-configuration
は関数にマップする必要があります(nginx
を付けずにアプリケーションをホストすると起こります)。だから、なぜnginx
が存在しない/oidc/.well-known/*
パス/ファイルにアクセスしようとしたのか分かりません。
'location〜/ \。well-known 'は、' nginx'がローカルファイルを探すようにします。なぜあなたがそれを追加したのか分かりません。その場所ブロックを追加する前に何が起こったのですか? –
私は同じエラー(404/403)を受け取りました。 https://community.letsencrypt.org/t/404-on-well-known-acme-challenge/15565/9に記載されている行に基づいてその行が追加されます – Hamed