使用 certbot 申请泛域名证书和自动续签

下载certbot

certbot官网

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

查看certbot版本

certbot --version

申请 HTTPS 证书

sudo certbot certonly  -d "*.example.com" -d example.com --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory
  • certonly 安装模式
  • -d 申请证书的域名,如果是通配符域名输入 *.example.com
  • –manual 手动安装插件
  • –preferred-challenges dns 使用 DNS 方式校验域名所有权
  • –server,Let’s Encrypt ACME v2 版本使用的服务器不同于 v1 版本,需要显示指定



第一次执行完命令之后会提示需要输入邮箱,和一些协议需要同意和确认,然后每次运行此命令需要记录 IP 信息,需要同意不然不能继续申请
在这里插入图片描述




设置DNS TXT记录
需要在个人的域名供应商那进行dns域名解析,新增一个txt记录,将主机记录和记录值填上,线路类型一般默认,TTL默认一般设置600s,保存等待一小段时间即可。

ps:TTL为缓存的生存时间,默认最常用的 600 秒。指地方dns缓存您域名记录信息的时间,缓存失效后会再次到DNSPod获取记录值。
在这里插入图片描述

在这里插入图片描述

保存之后需要验证是否解析成功,验证方法见下方,验证成功之后,回车等待申请成功

在这里插入图片描述
如果是这样的就是证书申请成功了,然后在服务器上配置一下就可以了




验证DNS TXT 记录

nslookup -q=txt _acme-challenge.example.com

在这里插入图片描述


查看证书有效期

sudo openssl x509 -noout -dates -in /etc/letsencrypt/live/moneystar.top/cert.pem

证书目录:/etc/letsencrypt/live/example.com

ls /etc/letsencrypt/live/example.com
cert.pem  chain.pem  fullchain.pem  privkey.pem  README

自动续订

创建续订证书脚本

touch {自己服务器的目录绝对路径}/sslrenew.sh

编辑脚本

vim {自己服务器的目录绝对路径}/sslrenew.sh

脚本内容

sudo certbot renew

设置脚本可执行

chmod +x {自己服务器的目录绝对路径}/sslrenew.sh

编辑定时任务,每月1号执行续订操作

crontab -e

添加定时逻辑

0 0 1 * * {自己服务器的目录绝对路径}/sslrenew.sh

重新加载定时任务

service crond reload

查看定时任务列表

crontab -l


配置nginx

方法一:
在/etc/nginx目录下

sudo touch ssl.conf
sudo vim ssl.conf

添加如下两行

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

随后在单独的文件中配置nginx

server {
        listen       443 ssl;
        server_name  localhost;
        include ssl.conf;
        
        location / {
            root   html;
            index  index.html index.htm;
        }
        ssl on;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;
     
}

方法二:
直接在单独的文件中配置nginx

server {
        listen       443 ssl;
        server_name  localhost;
        
        location / {
            root   html;
            index  index.html index.htm;
        }
        ssl on;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;
        ssl_certificate      /etc/letsencrypt/live/example.com/cert.pem;
        ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;
}


作者公众号
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值