Windows系统下使用acme.sh定时更新、续订ssl证书
记得上一篇文章说是3个月记录,结果一年快过去了哈哈哈哈。中途因为系统换了好几次,而每次新环境都是申请新的SSL证书,刚好最近观察到某个域的证书快过期,而续订脚本似乎一直没啥动静。直到开了日志一看,好家伙,Windows下这玩意儿不能简单的像linux环境下那样简单安装就可以正常使用……
之前的文章
简述
Linux下我们常用 Corntab 来定时执行某些任务, 而Windows则可以使用自带的计划任务来达到同样的效果, 只不过相比起来有些繁杂。在Windows系统上,似乎不能直接简单的调用?可能是博主太菜了,很容易出现一大堆的问题。
流程
- 安装好git
- 使用git安装acme.sh脚本
- 修改脚本文件
- 查看定时任务,若没有不存在,那么需要手动添加
- 尝试运行
1.安装git/acme.sh
这个就不再重复记录,如果有需要可以简单参考:传送门
2.修改脚本
由于是Windows系统,路径上经常是出现不一致的情况,因此若是直接执行脚本很容易出现一堆的Error。脚本又是几千行,所以怎么调试呢?新建xxx.sh,写入你的代码,执行……是的,博主并不熟悉这玩意儿,只能使用这种笨办法,这里简单记录一下吧,有需要可以参考看看。
2.1 修改account.conf
直接打开acme的安装路径,如:C:\Users\Administrator\.acme.sh
,找到 account.conf
文件使用编辑器打开,要注意的是最好不要使用记事本,很容易出现编码格式问题。
需要修改啥呢?
- 取消
LOG_FILE
井号注释,路径一般是在当前acme的安装目录下,看需要调整。 - 取消
CERT_HOME
井号注释,并修改路径,若没有CERT_HOME
,就手动添加到配置文件的最后面。
2.2 修改acme.sh
3.设置定时任务
3.1 默认情况
一般来说,路径全为默认的情况下,安装完acme.sh脚本后,会自动部署计划任务。打开Windows计划任务之后,查找名为 acme
的任务,双击打开。同时切换到条件,启动程序选择你的 bash安装根路径下的/bin/bash.exe
。底下的参数框里的内容参考如下:
#确定之后保存,然后按提示输入管理员账户的密码,确认保存。
-l -c "你的acme.sh完整路径 --cron --home 你的acme根路径"
3.2 自动&手动添加
若是没有找到acme的任务,那么就自己手动/或者命令行自动添加一个。
碎碎念
执行续订脚本之前,得确保http下能够正常访问到对应站点目录的文件,或者采用dns api验证的方式尝试下发新的证书,否则续订必失败!
另外,account.conf里的log调试完成后就可以重新注释掉了,一般也不用上(谁没事天天看那玩意儿)。