我按照此处的教程创建了一个Let的加密证书,并且它一直运行良好:https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
我现在已经到了我正在尝试更新证书的地步但是它仍然没有使用404.我已经研究了很多地方,甚至尝试了我在Stack Overflow上的类似帖子中找到的一些东西。我正在使用Nginx作为代理传递给运行Spring Boot应用程序的嵌入式Tomcat servlet,该应用程序使用spring安全性。以下配置是我当前的配置。问题似乎是更新过程无法为极限挑战命中生成的文件。运行命令“sudo letsencrypt renew”从未在“.well-known”目录下实际创建目录“acme-challenge”。我手动创建了目录,并在该文件中添加了一个名为“test”的文件,内容为“success”。我能够检索这个文件,并在我的浏览器中查看它的内容,但是由加密创建的极限挑战仍然失败。
如果你们中的任何人能够看到我没有得到的东西,我将非常感激。无论如何,我不是Let's Encrypt或Nginx的专家。
提前感谢您的帮助!
默认配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name mysite.com www.mysite.com;
location ~ /.well-known/acme-challenge {
default_type "text/plain";
root /usr/share/nginx/html;
}
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/ssl-mysite.com.conf;
include snippets/ssl-params.conf;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ /.well-known/acme-challenge {
allow all;
}
}
mysite.com配置:
server {
listen 443;
#include snippets/ssl-mysite.com.conf;
#include snippets/ssl-params.conf;
server_name mysite.com www.mysite.com;
root /opt/tomcat/webapps/ROOT/;
proxy_cache one;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
location /.well-known/acme-challenge/ {
default_type "text/plain";
root /usr/share/nginx/html;
}
}