如何在不停止nginx的情况下使用“let's加密”?

时间:2017-03-13 05:04:21

标签: lets-encrypt certbot

我正在为我们的服务器添加https支持。在添加Let的加密支持时,我怎么能不停止Nginx?

3 个答案:

答案 0 :(得分:2)

将此块添加到server配置中(取决于您的服务器配置,您可以使用除/var/www/html之外的其他路径):

location ~ /.well-known {
    root /var/www/html;
    allow all;
}

重新加载nginx,按如下方式运行certbot:

certbot certonly -a webroot --webroot-path=/var/www/html -d yourdomain.example

将生成的证书应用于server配置

ssl_certificate /etc/letsencrypt/live/yourdomain.example/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.example/privkey.pem;

确保将服务器设置配置为使用ssl:

在端口443上运行
listen 443 ssl;

再次重新加载nginx。在重新加载之间,您可以通过运行nginx -t来确保配置是否存在语法错误。

答案 1 :(得分:1)

你可以使用docker。 Link on hub.docker

例如:

创建certbot.sh

为此,您必须在CLI中运行:

touch certbot.sh && chmod +x ./certbot.sh

写入文件:

#!/usr/bin/env bash docker run --rm -v /etc/letsencrypt:/etc/letsencrypt -v /var/lib/letsencrypt:/var/lib/letsencrypt certbot/certbot "$@"

并按此运行:

./certbot.sh --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is

OR

./certbot.sh renew

您可以在crontab中添加调用此方法以进行续订

0 0 1 * * /<PATH_TO_FILE>/certbot.sh renew

答案 2 :(得分:1)

针对所有答案,您可以在nginx模式下运行certbot 只是阅读它的文档。
您所要做的就是安装一个额外的nginx插件并按照certbot的文档进行操作 该插件甚至会在更新后立即热重新加载nginx ram中的缓存证书。

https://certbot.eff.org/all-instructions/

(因为除非certbot这样做,否则这个链接不太可能会脱机,我会避免在它被更新时引用任何内容)