代码之家  ›  专栏  ›  技术社区  ›  martins

配置要回复的Nginxhttp://my-domain.com/.well-known/acme-challenge/XXXX

  •  22
  • martins  · 技术社区  · 7 年前

    我无法让nginx返回我放入的文件 /var/www/letsencrypt .

    nginx/sites available/mydomain。形态

    server {
      listen 80 default_server;
      listen [::]:80 default_server ipv6only=on;
      server_name my-real-domain.com;
    
      include /etc/nginx/snippets/letsencrypt.conf;
    
      root /var/www/mydomain;
      index index.html;
      location / {
        try_files $uri $uri/ =404;
      }
    }
    

    location ^~ /.well-known/acme-challenge/ {
      default_type "text/plain";
      root /var/www/letsencrypt;
    }
    

    我运行此命令:

    但是certbot尝试访问的页面总是404。

    $ echo hi > /var/www/letsencrypt/hi
    $ chmod 644 /var/www/letsencrypt/hi
    

    现在我应该可以 curl localhost/.well-known/acme-challenge/hi ,但这不起作用。仍然是404。知道我错过了什么吗?

    2 回复  |  直到 7 年前
        1
  •  26
  •   bukkojot    7 年前

    选项 root /var/www/letsencrypt/; /var/www/letsencrypt/.well-known/acme-challenge/

    因此,您有两种选择:

    1. 更改路径,例如

      $ echo hi > /var/www/letsencrypt/.well-known/acme-challenge/hi
      
    2. 更改nginx的行为,以便nginx将其视为别名:

      location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        rewrite /.well-known/acme-challenge/(.*) /$1 break;
        root /var/www/letsencrypt;
      }
      

    别忘了制作 killall -1 nginx 重新加载配置

        2
  •  0
  •   enguerran    3 年前

    /var/lib/letsencrypt/.well-known/acme-challenge 由于配置保持不变,因此无需重新加载Nginx。

    看见 /etc/nginx/nginx.conf