通过certbot配置https证书

注意:需要现在服务中安装nginx,并且需要申请域名指向该服务器

1、安装certbot
使用python3-certbot-nginx插件

sudo yum install certbot python3-certbot-nginx

2、获取并安装证书,同时自动配置Nginx

sudo certbot --nginx -d your.domain.com

3、使用crontab生成自动更新脚本

(1)新建脚本:vim /usr/local/sbin/renew-certbot.sh
授予脚本权限:chmod +777 /usr/local/sbin/renew-certbot.sh

#!/bin/bash

# 日志文件路径
LOG_FILE="/var/log/certbot-renew.log"

# 将标准输出和标准错误输出都重定向到日志文件
exec >> "$LOG_FILE" 2>&1

# 获取当前日期和时间
CURRENT_DATETIME=$(date '+%Y-%m-%d %H:%M:%S')

echo "[$CURRENT_DATETIME] 开始Certbot证书续订流程"

# 运行Certbot续订命令,并在必要时重启服务
# 注意:根据你的Web服务器(Nginx或Apache),选择适当的命令
# 如果你使用的是Nginx
sudo certbot renew --force-renewal --quiet --agree-tos --renew-hook "sudo systemctl reload nginx"

# 如果你使用的是Apache
# sudo certbot renew --force-renewal --quiet --agree-tos --renew-hook "sudo systemctl reload apache2"

# 获取Certbot续订命令的退出状态
EXIT_STATUS=$?

# 检查是否续订成功
if [ $EXIT_STATUS -eq 0 ]; then
    echo "[$CURRENT_DATETIME] Certbot证书续订成功"
else
    echo "[$CURRENT_DATETIME] Certbot证书续订失败,退出状态码:$EXIT_STATUS"
fi

(2)crontab -e 创建定时任务

#这里的各个字段含义如下:
#0:分钟(在第0分钟时执行)
#20:小时(在20点时执行,即晚上8点)
#*:日期(每天)
#*:月份(每个月)
#*:星期几(每周的每一天)

0 20 * * * /usr/local/sbin/renew-certbot.sh

(3)crontab -l 查看任务
(4)验证脚本是否执行

cat /var/log/certbot-renew.log
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。