2017-06-13 9 views
0

私はletsencrypt証明書の更新に問題があります。 私はcertbot renew --dry-runを実行して、なぜ、その後、更新は、以下の私のnginxの設定(神社のtemlate)を参照してください404Letsencrypt nginx、renewは404を返す

を返すサイト で失敗します。 {{ ssl_challenge_dir }} の変数は、 の証明書を最初に生成したときの--webroot-pathと同じものです。私は{{ ssl_challenge_dir }}/.well-known/acme-challenge/test.htmlにダミーのコンテンツを持つファイルを配置する場合

は、そのファイルは404

は、だから私は少し困惑してい上げることなく完璧に 提供しています。私が理解している限り、certbotが実行されると、同じディレクトリの下に 一時ファイルが作成され、要求が試行されます。しかしそれ は404を返し続けます。

私がここで間違っていることを知っている人は誰ですか?

server_tokens off; 
more_set_headers 'Server: '; 

# Letsencrypt and SSL Redirect 
server { 
    listen 80; 
    server_name {{ site.domain }} {{ site.name }}; 

    # Letsencrypt challange 
    location /.well-known/acme-challenge/ { 
     root {{ site.ssl_challenge_dir }}; 
     allow all; 
     try_files $uri $uri/ =404; 
    } 

    # Redirect all other requests to https 
    location/{ 
     return 301 https://{{ site.name }}$request_uri; 
     rewrite ^/(.*) https://{{ site.name }}/$1 permanent; 
    } 
} 

server { 
    server_name {{ site.name }}; 
    listen 443; 
    access_log {{ user.logs_dir }}/nginx_access.log; 
    error_log {{ user.logs_dir }}/nginx_error.log; 

    client_max_body_size 10M; 
    gzip on; 
    gzip_types text/plain image/png image/jpg; 

    ssl on; 
    ssl_session_cache shared:SSL:10m; 
    ssl_session_timeout 10m; 
    ssl_certificate /etc/letsencrypt/live/{{ site.name }}/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/{{ site.name }}/privkey.pem; 

    # Resources 
    location ^~ /media/ { 
     root {{ webapp.resources_dir }}; 
     expires 31d; 
     gzip_static on; 
    } 

    location ^~ /static/ { 
     root {{ webapp.resources_dir }}; 
     expires 0; 
     gzip_static on; 
    } 

    location/{ 
     {% if site.auth_required %} 
     auth_basic "Restricted"; 
     auth_basic_user_file {{ user.home_dir }}/.htpasswd; 
     {% endif %} 

     proxy_pass http://unix:{{ webapp.socket }}:; 
     # proxy_pass_header Server; 

     proxy_set_header Host $http_host; 
     proxy_redirect off; 

     proxy_connect_timeout 600; 
     proxy_send_timeout 600; 
     proxy_read_timeout 600; 
     send_timeout 600; 

     proxy_set_header X-Scheme $scheme; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header X-Forwarded-Protocol ssl; 
    } 
} 

答えて

0

私が間違っていたことを発見しました。私のnginx設定で問題はありません。

私の問題は、私はcertbotを実行するときに、元の本命を取得するために --webrootを使用し、基本的にはちょうど更新コマンドも --webroot

で実行する必要があることを認識していなかったということでした

関連する問題