web-dev-qa-db-ja.com

Certbotがacme-challengeフォルダーを作成しない

数か月前に(古いletsencryptクライアントを使用して)証明書を暗号化しましょう。私が使用しているサーバーはnginxです。

Certbotは.well-knownフォルダーを作成していますが、acme-challengeフォルダーは作成していません

今、私は~/certbot-auto certonly --webroot -w /var/www/webroot -d domain.com -d www.domain.com -d git.domain.com経由で新しい証明書を作成しようとしました

しかし、私はいつも次のようなエラーを受け取ります:

IMPORTANT NOTES:
   - The following errors were reported by the server:

   Domain: git.domain.com
   Type:   unauthorized
   Detail: Invalid response from
   http://git.domain.com/.well-known/acme-challenge/ZLsZwCsBU5LQn6mnzDBaD6MHHlhV3FP7ozenxaw4fow:
   "<.!DOCTYPE html>
   <.html lang='en'>
   <.head prefix='og: http://ogp.me/ns#'>
   <.meta charset='utf-8'>
   <.meta content='IE=Edge' http-equiv"

   Domain: www.domain.com
   Type:   unauthorized
   Detail: Invalid response from
   http://www.domain.com/.well-known/acme-challenge/7vHwDXstyiY0wgECcR5zuS2jE57m8I3utszEkwj_mWw:
   "<.html>
   <.head><.title>404 Not Found</title></head>
   <.body bgcolor="white">
   <.center><.h1>404 Not Found</h1></center>

(もちろん、HTMLタグ内のドットは実際にはありません)

解決策を探しましたが、まだ見つかりませんでした。 certbotがフォルダを作成していない理由を誰か知っていますか?

前もって感謝します!

20
lehnerchristian

問題はnginxの設定でした。長い構成ファイルを可能な限り単純な構成に置き換えました。

server {
    listen 80;
    server_name domain.com www.domain.com git.domain.com;
    root /var/www/domain/;
}

その後、新しい証明書を発行することができました。

私の長い構成ファイルの問題は、(私が知る限り)これらの行があることでした:

location ~ /.well-known {
    allow all;
}

ただし、次のようにする必要があります。

location ~ /.well-known/acme-challenge/ {
    allow all;
}

現在、更新も機能しています。

12
lehnerchristian

同様の問題がありました。私の問題は、このルールがあったことです。

 location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
 }

「。」で始まるディレクトリへのすべてのアクセスをキャンセルするこれらの行(ポイント)

4
Dazag

愚かな問題がありました-certbotコマンドを実行している間、webroot属性がリポジトリのルートディレクトリを指し、パブリックディレクトリを指していませんでした。

2
Justin