我正在尝试设置我的nginx和django以便能够续订证书。 但是我的webroot-plugin出了点问题
在nginx中:
location ~ /.well-known {
allow all;
}
但是当我运行续订命令时:
./letsencrypt-auto certonly -a webroot --agree-tos --renew-by-default --webroot-path=/home/sult/huppels -d huppels.nl -d www.huppels.nl
然而,似乎证书续订想要从我的服务器检索文件,因为我收到以下错误。
服务器报告了以下错误:
授权程序失败。 www.huppels.nl(http-01):urn:acme:错误:unauthorized ::客户端缺乏足够的授权::来自http://www.huppels.nl/.well-known/acme-challenge/some_long_hash的响应无效[51.254.101.239]:400
如何使用nginx或django实现这一目标?
答案 0 :(得分:14)
我的Django应用程序运行着gunicorn。我按照here的说明进行操作。
我确保包含正确的位置块:
location /static {
alias /home/user/webapp;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
确保包含任何模板位置别名。
我像这样设置了.well已知的位置块;
location /.well-known {
alias /home/user/webapp/.well-known;
}
指向它直接执行webapp的根,而不是使用allow all。
我确实必须确保在生成证书之前我只使用了非ssl块然后我使用了基于h5bps nginx配置的不同nginx配置。
注意:如果您打算使用h5bp重定向到www,请确保您的域名指向适当的A记录。