web-dev-qa-db-ja.com

サイトにSSL証明書を追加しようとしたときに「認証手順に失敗しました」

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;
    }
}
1
Zorgan

以下のロケーションブロックを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

1