certbot 是免费证书,但申请一次有效期只有3个月:
先安装 certbot
1 | wget https://dl.eff.org/certbot-auto |
###申请证书(注意:需要把要申请证书的域名先解析到这台服务器上,才能申请):
1 | sudo ./certbot-auto certonly --standalone --email admin@abc.com -d test.com -d www.test.com |
执行上面指令,按提示操作。
Certbot 会启动一个临时服务器来完成验证(会占用 80 端口或 443 端口,因此需要暂时关闭 Web 服务器),然后 Certbot 会把证书以文件的形式保存,包括完整的证书链文件和私钥文件。
文件保存在 /etc/letsencrypt/live/ 下面的域名目录下。
修改 nginx 配置:
1 | server{ |
证书自动续期
证书有效期是 3 个月,把下面命令加到 crontab,每2个月执行一次:
1 | certbot-auto renew //刷新指令 |
自动读取nginx配置申请证书
certbot-auto –nginx 会自动读取 nginx 的配置,按提示申请证书。
下面命令会自动创建定时任务
1 | certbot-auto renew --dry-run |
不重启申请证书
修改 nginx 配置,增加:
1 | location ^~ /.well-known/acme-challenge/ { |
重启 nginx,执行:
1 | certbot-auto certonly --webroot -w /usr/share/nginx/html/ -d www.test.com |