2016-07-14 7 views
12

私は数ヶ月前に(以前のletsencryptクライアントで)証明書を暗号化しましょう。 私が使用しているサーバはnginxです。CertBotがacme-challengeフォルダを作成していません

Certbotはアクメ・チャレンジフォルダ

は、今私は~/certbot-auto certonly --webroot -w /var/www/webroot -d domain.com -d www.domain.com -d git.domain.com

を経由して新しい証明書を作成しようとしました。しかし、私は常にこのようなエラーが出.well知られているフォルダを作成していないが、:

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タグ内の点は実際にはありません)

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

ありがとうございます!

答えて

7

問題は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; 
} 

今リニューアル工事、私はこれらの行を持っていた

(私の知る限り)私の長いコンフィギュレーションファイルに問題だったの、あまりにも。

+6

Certbotは、発行しようとした後に '.well-known'ディレクトリをクリアすることに言及する価値があります。だから問題がファイルの提供ではなくファイルの生成であると考えているのであれば、そうではないと安心しています。権限エラーが発生したときに発生するエラーは異なります。 – DfKimera

+0

この場合、すべてのサブドメインが同じルートディレクトリを使用することに注意してください。複数のルートを使用する場合は、ルートごとに1つのサーバーを作成する(おそらく最高ではないが、機能する)ソリューションです。 – aluriak

+0

これらの解決法は私のためには機能しませんでした。 Straceはcertbotがcertbotを起動する前に手動で作成する時にacme-challengeディレクトリを削除して、チャレンジファイルを開くことができないことを示しています。 – rhoerbe

3

私も同様の問題がありました。 「」

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

これらの行で始まる任意のディレクトリへのすべてのアクセスもをキャンセルする場所:私の問題は、私はこのルールを持っていたこと、でした(ポイント)

+2

この問題がありました。あまりにも(NginxのWordpressのデフォルト)、それは貴重なルールなので、 'location〜/。well-known'ルールの後に置いてください –

0

私は愚かな問題を抱えていました.certbotコマンドを実行しているときに、公開ルートではなく、自分のリポジトリのルートディレクトリを指すwebroot属性を持っていました。

関連する問題