Nginx配合Certbot自动更新,获得永久免费SSL证书

Let’s Encrypt 证书申请使用

github: https://github.com/certbot/certbot
官网: https://certbot.eff.org/

先安装certbot

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
申请证书

sudo ./certbot-auto certonly --standalone --email admin@abc.com -d abc.com -d www.abc.com
执行上面指令,按提示操作。
Certbot 会启动一个临时服务器来完成验证(会占用80端口或443端口,因此需要暂时关闭 Web 服务器),然后 Certbot 会把证书以文件的形式保存,包括完整的证书链文件和私钥文件。
文件保存在 /etc/letsencrypt/live/ 下面的域名目录下。

需要把要申请证书的域名先解析到这台服务器上,才能申请。
修改nginx配置

server{
    listen 80;
    listen 443 ssl;

    ssl_certificate /etc/letsencrypt/live/abc.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/abc.com/privkey.pem;

    server_name abc.com www.abc.com;
    root /web/abc.com/;
}


证书续期

证书有效期是3个月,把下面命令加到crontab,每2个月执行一次。
sudo nginx -s stop
sudo certbot-auto renew //刷新指令
sudo nginx
如果出现错误,则可能需要执行下面的指令:
sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot python-certbot-nginx
$ sudo apt-get install letsencrypt
$ export LC_ALL="en_US.UTF-8"
$ export LC_CTYPE="en_US.UTF-8"
然后再执行:
sudo nginx -s stop
sudo certbot-auto renew //刷新指令
sudo nginx


下面这些不知道有没有效果,没确认过:

自动读取nginx配置申请证书
certbot-auto --nginx 会自动读取nginx的配置,按提示申请证书。

下面命令会自动创建定时任务

certbot-auto renew --dry-run 

不重启申请证书

修改nginx配置,增加

location ^~ /.well-known/acme-challenge/ {
   default_type "text/plain";
   root     /usr/share/nginx/html;
}

重启nginx,执行 certbot-auto certonly --webroot -w /usr/share/nginx/html/ -d www.bifang.xyz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值