启因:
练习用 Python 写网站 https://bjn.halaldeli.cn 不能打开,浏览器报: ERR_CERT_DATE_INVALID / 证书日志无效
排查:
1. 确定是证书已经过期.
浏览器中有显示,没存图
2. crontab 任务
acme.sh 为什么没有自己更新?而且有进程。
3. 更新 acme.sh
acme.sh --upgrade
3. 手动更新证书
命令行中 bjn.halaldeli.cn <- 替换需要升级的域名
acme.sh --renew -d bjn.halaldeli.cn --force
上面的红字:
“[Sun Sep 14 09:37:20 PM CST 2025] It seems that you are using dns manual mode. Read this link first: https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode"
查了一下,正好我用的 CloudFlare ,还可以用 API 来更新 TXT 记录。
解决方法:
1. 在 CloudFlare 中创建一个 DNS edit API
2. 添加 API (CF_Token)到(启动文件)环境变量
变量名:CF_Token
export CF_Key="Cloudflare 生成的 EDIT ZONE DNS"
3. 测试一下 API 有效
见图中: API Token is valid and active 即成功
4. 获取新证书,并安装到 nginx
1) 为 bjn.halaldeli.cn 获取新证书
acme.sh --issue --dns dns_cf -d bjn.halaldeli.cn
2) 安装新证书到 nginx , 并重启 nginx
/root/.acme.sh/acme.sh --install-cert -d bjn.halaldeli.cn --ecc \
--key-file /etc/nginx/ssl/bjn.halaldeli.cn.key \
--fullchain-file /etc/nginx/ssl/bjn.halaldeli.cn.cer \
--reloadcmd "systemctl restart nginx"
5 检查生效
再用浏览器打开网站:
有关文章:
< 自用文儿 使用 acme 获取网站证书 > ACME 脚本 script: acme.sh 获得证书 觉得比 certbot 方便
< 自用文儿 Ubuntu 24 安装 v2射线 > 需要安装 nginx acmc ufw 这篇文章介绍使用 acmc 在 80 端口解封前 申请免费 SSL 证书
这是 GEMINI 生成的图片。 by the way , Midjourney 出图,确实好过 GEMINI GROK4 几条件街。