本文主要讲述在windows系统利用acme.sh申请https证书的方法,并且应用到IIS和Tomcat。

参考链接:https://blog.853lab.com/2018/09/post_1965.html

安装Cygwin

全程联网,安装Cygwin,直接点点点下一步,节点使用163节点(速度快,如果只想配置acme.sh的话):http://mirrors.163.com/cygwin/ 或其他可以用的节点

在选择包列表,选择curl、cron、bzip2、wget、gcc-core、gcc-g++、make、openssh、lynx,然后下一步

一直下一步,Cygwin就安装好了(网络错误除外)然后在Windows的path变量下追加“;C:\cygwin64\bin;C:\cygwin64\usr\local\bin”

双击打开“C:\cygwin64”目录下的“Cygwin.bat”文件,运行以下命令:

1
curl https://get.acme.sh | sh

或者是:

1
wget -O -  https://get.acme.sh | sh

等待安装妥当,出现下面的界面代表安装完成(如果不显示或不显示最后的“Install success!”,估计是你安装Cygwin时没安装全所选的包。解决方法:不卸载再重新运行Cygwin安装包安装没有选上的包)

申请通配符证书

关掉并重新打开“C:\cygwin64”目录下的“Cygwin.bat”文件,使用DNS方式来配置DNS API并申请域名证书。(这里用的是Aliyun DNS)
务必阅读 How to use DNS API
AliyunDNS使用示范:

1
2
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

之后运行下面的命令申请(CloudXNS用的是–dns dns_cx,阿里云用的是–dns dns_ali,其他请参考How to use DNS API):

1
acme.sh --issue --dns dns_ali -d xxx.com -d *.xxx.com

证书自动续期

请打开记事本,粘贴并修改以下文本,保存为“autoacme.bat”
注意修改**[要修改的位置]**

1
bash --login -i -c "[acme.sh --issue --dns dns_cx -d 853lab.com -d *.853lab.com]" & copy C:\cygwin64\home\[Windows用户名]\.acme.sh\[853lab.com]\*.* [复制到一个存放证书的路径] /y

示例:

1
bash --login -i -c "acme.sh --issue --dns dns_cx -d 853lab.com -d *.853lab.com" & copy C:\cygwin64\home\Sonic853\.acme.sh\853lab.com\*.* C:\web-config\cet /y

之后双击运行一次“autoacme.bat”检查是否运行,成功的话在存放证书的路径就能看得见你申请的证书了:

打开“任务计划程序”,点击左边的“任务计划程序库”,点击右边的“创建基本任务”,按自己想法输入名称和描述,点击下一步

触发器选择每天

每天早上9:00一次

选择运行“autoacme.bat”脚本

完成后双击或右键属性选择刚刚创建好的项目,设置安全选项下的选项“不管用户是否登陆都要运行”以及“使用最高权限运行”。