技术社区 作者:KnowSafe 2025-05-07 23:06:19 阅读:16
目前免费证书的大部分有效期都是3个月,博主之前使用acme.sh管理证书,但是在易用性上比价差,自动更新经常不生效,最近将证书管理替换成了certbot。certbot相对而言有以下优势:
Let's Encrypt 官方推荐的客户端工具
自动续期:Let’s Encrypt 证书的有效期为 90 天,Certbot 会自动在证书到期前更新它们,确保 HTTPS 服务的持续性。
自动配置 Web 服务器(如 Apache、Nginx),使其使用新获得的证书提供 HTTPS 服务。
对于 Ubuntu/Debian 系统,你可以使用以下命令安装 Certbot:
sudo apt-get update sudo apt-get install certbot python3-certbot-nginx
对于 CentOS 系统,你可以使用以下命令安装 Certbot:
sudo yum install epel-release sudo yum install certbot python3-certbot-nginx
不同的域名提供商有不同的配置参数,以下以腾讯云DNSPod为例。
为了让Certbot支持DNSPod,需要先安装certbot-dns-dnspod插件(Github地址):
sudo pip install git+https://github.com/tengattack/certbot-dns-dnspod.git
然后到DNSPod Token平台创建秘钥,然后创建文件:/etc/certbot-dnspod.ini,其中dns_dnspod_api_id和dns_dnspod_api_token填写刚在DNSPod申请的秘钥信息,内容如下:
dns_dnspod_api_id = *** dns_dnspod_api_token = ******
执行以下命令更改文件权限:
chmod 600 /path/to/credentials.ini
配置命令如下,将域名改成你自己的域名,certbot支持一个证书同时支持根域名和泛域名。
certbot certonly -a dns-dnspod \ --dns-dnspod-credentials /etc/certbot-dnspod.ini \ -d lesofn.com \ -d "*.lesofn.com"
执行成功会输出:
Certificate is saved at: /etc/letsencrypt/live/lesofn.com/fullchain.pem Key is saved at: /etc/letsencrypt/live/lesofn.com/privkey.pem
certbot renew # 只验证,不真正更新 certbot renew --dry-run
编辑cron配置:crontab -e
添加一下命令:
0 0 * * 0 date >> /var/log/certbot-renew.log && /usr/local/bin/certbot renew >> /var/log/certbot-renew.log
至此,证书生成及自动更新就配置完成了。
配置nginx文件如下:
server { listen 443 ssl; server_name lesofn.com; ssl_certificate /etc/letsencrypt/live/lesofn.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/lesofn.com/privkey.pem; ...... }
批量替换acme.sh生成的证书:
acme.sh证书默认路径是:~/.acme.sh/lesofn.com_ecc,使用以下命令替换多个nginx配置文件中的证书:
sed -i 's!/{your_acme_path}/lesofn.com_ecc/fullchain.cer!/etc/letsencrypt/live/lesofn.com/fullchain.pem!g' * sed -i 's!/{your_acme_path}/lesofn.com_ecc/lesofn.com.key!/etc/letsencrypt/live/lesofn.com/privkey.pem!g' *
检查nginx文件并重启nginx:
nginx -t && nginx -s reload
定期检查Nginx和Certbot的日志,以确保证书续签正常运行。如果发现问题,可以手动更新证书或调整自动续签脚本。
可以打开浏览器查看证书,也可以使用以下命令检查:
openssl x509 -in /etc/letsencrypt/live/lesofn.com/fullchain.pem -noout -dates
在网络安全日益重要的今天,为网站配置SSL证书成为了必不可少的步骤。然而,Let's Encrypt的免费证书有效期仅为90天,手动续签较为繁琐且容易因延误导致证书过期,影响网站正常访问。本文
SSL证书到期后,网站无法正常访问,或出现证书过期警告,影响用户体验和网站安全。解决方案1. 设置证书续期提醒:使用系统自带的提醒工具或第三方监控工具,设置SSL证书有效期提醒。例如,在Linux系统
在运行Certbot命令申请证书时,系统提示端口占用错误,无法正常启动Web服务器或完成证书验证。这通常是因为80端口(HTTP默认端口)或443端口(HTTPS默认端口)已被其他进程占用,导致Cer