关注

请问……用 有没有什么注意事项?比如是不是有什么设置项会导致 Certbot 证书续期失败?

@katzeilla 我就刚刚证书续期失败了,临时开了 cloudflare 的开发模式才成功……

@katzeilla @dimlau 有cloudflare就不需要本地证书了(Nginx那边随便挂着个过期的证书甚至其他域名的证书都行)。或者你可以申请let’s encrypt的泛域名证书。

@dimlau 没有吧,这么多年我都是直接解析过去就完了,也没尝试过里面的配置,直接用默认配置都没遇到过什么问题(?)

@dimlau 是的,我后来把always https都关掉了。

@flyover @dimlau
使用 Cloudflare 并开启 CDN,并不影响正常的 Let's encrypt 证书续期。

首先,在网站 http、https 两个块中都加入

location ^~ /.well-known/acme-challenge/ {
root /var/www/_letsencrypt;
}

注意 https 443端中的块中也要加入。
Let's encrypt 的 http chanllenge 也可以通过443端口以 HTTPS 协议进行。

创建 /var/www/_letsencrypt/ 目录,并授予合适的权限,重载 nginx 使新配置生效。

certbot certonly --webroot -w /var/www/_letsencrypt/ -d example.com

使用上面的命令获取一个证书。
注意第一次时需要暂时关闭 Cloudflare CDN 功能,之后无需关闭 Cloudflare CDN 证书即可自动续期。

如果你使用的 Debian 系的发行版,那么你的系统中在安装 certbot 时便应该安装并启用了 certbot.timer ,该服务会自动续期证书。
如果没有该服务,如 Arch ,你可以自己手动建一个。

检查 /etc/letsencrypt/renewal 目录下的证书续期设置,确认该设置有效。

@bgme
```
#!/bin/bash
systemctl stop nginx
certbot -q renew
systemctl start nginx
```

@dimlau @bgme

或许你应该使用 reload ?
e.g.
sudo systemctl reload nginx

@dimlau 没遇到过,印象中就 Rocket Loader 这个选项需要注意下,有时候会出现问题。

@dimlau 我记得certbot 续期的时候需要把 proxy 功能关掉。IP需要指向到服务器要不然没法验证。

登录以加入对话
TzCafe

一个畅所欲言的网上咖啡馆,欢迎在这里交流,就像在现实中的咖啡馆里那样。