Digital Oceanサーバーでこのコマンドを実行したとき:
Sudo certbot --authenticator webroot --webroot-path /home/james/postr --installer nginx -d <sitename>
私はこのエラーを受け取ります:
Failed authorization procedure
The client lacks sufficient authorization :: Invalid response from
http://www.<sitename>.com/.well-known/acme-challenge/oAVGa4eBNfQQ1Vrn_q-
iKjV2T6ue3H5kOcxEWpztrHc
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: www.venvor.com
Type: unauthorized
Detail: Invalid response from
http://www.<sitename>.com/.well-known/acme-challenge/oAVGa4eBNfQQ1Vrn_q-
iKjV2T6ue3H5kOcxEWpztrHc:
"<h1>Not Found</h1><p>The requested URL
/.well-known/acme-challenge/oAVGa4eBNfQQ1Vrn_q-iKjV2T6ue3H5kOcxEWpztrHc
was not found on "
私はすでにURLファイルをURLファイルに追加しようとしました:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^.well-known/acme-challenge/', admin.site.urls),
]
ただし、まだ機能しません。問題が何であるか考えていますか?
編集:
/etc/nginx/sites-available/postr
server {
listen 80;
server_name venvor.com www.venvor.com 174.138.62.249;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/james/postr;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/james/postr/draft1.sock;
}
}
以下のロケーションブロックをnginx構成ファイルに追加してください:
location ^~ /.well-known {
root /your_path_to/document_root;
allow all;
}
仕組み:
Let's Encrypt検証サーバーは、クライアントが作成した検証ファイルをdocroot(.well-known)のサブディレクトリで探します。これは、これらのファイルが公的にアクセス可能でなければならないことを意味します。
上記のロケーションブロックでは、「^〜」修飾子は非正規表現の一致を行います。たとえば、/.well-known/acme-challenge/dkaslf_kfjadlkso^kfds-fkdssjlのリクエストを処理できます。
allow allディレクティブは、指定されたフォルダーへのパブリックアクセスを許可します。
参照してください: https://letsencrypt.org/how-it-works 。