使用 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;
}


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

### 如何在 CentOS 系统中申请免费 SSL 证书 Let's Encrypt #### 准备工作 确保服务器已安装必要的软件包以及网络服务正常运行。对于基于 CentOS 的系统,可以按照以下方法完成准备工作。 #### 安装 Certbot 工具 Certbot 是用于管理自动化处理 Let’s Encrypt SSL 证书的工具。根据不同的 CentOS 版本,安装方式略有不同: - **CentOS 7.9**: 执行以下命令以安装 Certbot 及其依赖项[^2]: ```bash sudo yum install epel-release sudo yum install certbot python-certbot-nginx ``` - **CentOS 8**: 对于较新的版本(如 CentOS 8),推荐使用 `dnf` 命令进行安装[^3]: ```bash sudo dnf install certbot python3-certbot-nginx ``` #### 获取并配置 SSL 证书 通过 Certbot 自动化流程获取配置 SSL 证书: 1. 运行 Certbot 并指定 Nginx 作为 Web 服务器: ```bash sudo certbot --nginx ``` 此过程会提示输入电子邮件地址其他必要信息。完成后,Certbot自动生成 SSL 证书并将它们绑定到 Nginx 配置文件中。 2. 如果需要手动指定域名或其他选项,则可以通过参数调整行为。例如: ```bash sudo certbot certonly --nginx -d example.com -d www.example.com ``` #### 测试自动续期功能 Let’s Encrypt 提供的证书有效期为 90 天,因此建议定期更新证书以防过期。测试自动续签机制是否有效: ```bash sudo certbot renew --dry-run ``` 如果此命令成功执行而无任何错误消息,则表明系统的自动续订功能已经就绪。 #### 检查与验证 Nginx 配置 最后一步是确认 Nginx 是否正确加载新配置,并重新启动服务使更改生效: ```bash sudo nginx -t sudo systemctl restart nginx ``` 以上步骤涵盖了从准备阶段直到最终部署完毕整个过程中所需的关键操作[^1]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值