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

    当证书申请或者续订、下发成功后,脚本需要自动的重载nginx配置。
    此处内容需要回复后并刷新才能查看

    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调试完成后就可以重新注释掉了,一般也不用上(谁没事天天看那玩意儿)。

    阅读剩余
    THE END