diff --git a/说明.md b/说明.md index d39bb9b..fe53b21 100644 --- a/说明.md +++ b/说明.md @@ -300,51 +300,20 @@ docker run --rm -it \ 上述例子中使用 Cloudflare 的 DNS 来签发证书,并通过把 acme.sh 链接到容器[代理A],来转发 curl 请求(请按照自己实际设定修改) -# 9. acme.sh.log日志文件时间差矫正: -## 时间差问题: +# 9. acme.sh.log日志文件时间展示问题: +## 问题说明: 证书每 60 天更新一次(可自定义),自己通过`/用户名/.acme.sh/acme.sh.log`路径下的日志实测查看: 会在**中午**检查并生成检查记录:`[12:48:01 AM CST 2025] Running cmd: cron......` -可官方文档明明指出,会在**每日凌晨**自动检查并生成检查记录。自己再次通过linux系统查看`acme.sh.log`的更新时间,的确是**每日凌晨**。那就说明.acme.sh运行时在中国产生了时差。 -## 解决方案: -1. 在 `account.conf` 中指定时区环境变量 - - 编辑 `acme.sh` 的配置文件 `~/.acme.sh/account.conf`,添加以下行: - ```shell - export TZ='Asia/Shanghai' - ``` - - (如果文件已存在其他配置,直接追加即可) -2. ‌让配置生效 - - 执行以下命令,使 `acme.sh` 重新加载配置并生成新日志: - ```bash - acme.sh --renew-all --force - ``` - - 或针对特定域名强制更新: - ```bash - acme.sh --renew -d yourdomain.com --force - ``` -3. ‌**验证日志时间**‌ - - 查看 `acme.sh.log` 日志文件,确认时间是否已修正: - ``` - tail -f ~/.acme.sh/acme.sh.log - ``` -## 附加说明‌: - -- ‌**原理**‌:通过 `export TZ='Asia/Shanghai'`,强制指定 `acme.sh` 运行时的时区环境变量,覆盖系统默认时区,确保日志时间与本地时间一致。 -- ‌**适用场景‌:** - - 系统时区已正确设置,但 `acme.sh` 因运行环境(如 `cron` 任务、Docker 容器)未继承时区。 - - 日志服务(如 `rsyslog`)未使用本地时间记录日志。 -- **【可选】通过命令参数矫正时区:** - 1. ‌**若通过 `cron` 自动续签**‌ - - 在 `cron` 任务中直接指定时区变量,确保任务运行时环境正确: - ```bashCopy - 0 0 * * * export TZ='Asia/Shanghai'; /path/to/acme.sh --renew-all - ``` - 2. ‌**若使用 Docker 运行 `acme.sh`** - - 在启动容器时添加时区参数: - ```bash - docker run -e TZ=Asia/Shanghai neilpang/acme.sh - ``` -小结:通过上述配置,日志时间应能正确对齐本地时间。若问题仍存在,请检查系统全局时区或容器运行时环境是否冲突。 +可官方文档明明指出,会在**每日凌晨**自动检查并生成检查记录。自己再次通过linux系统查看`acme.sh.log文件`的更新时间,的确是**每日凌晨**。那就说明.acme.sh【运行或展示】时在中国产生了时差。 +## 结论概述: +运行或展示均无问题! +而是中文语境对英文的12小时制时间有些人会有误解,所以正确结论是: +12小时制将一天分为两组12小时(AM和PM),其小时数字范围是 ‌1至12‌,而非24小时制的0至23 +凌晨0:30 | 00:30(24小时制) | ‌【‌正确】12:30 AM‌ | 【错误】00:30 AM | 混淆24小时制与12小时制的数字规则 +中午12:30 | 12:30(24小时制) | ‌【‌正确】12:30 PM‌ | 【错误】00:30 PM | 误将正午后的时间归为AM时段 +## 原因分析: +如果你的服务器是12小时制,那acme.sh.log日志文件也会跟着展示12小时制时间。据说acme.sh.log日志文件本身默认是24小时制的。 ***