Windows使用acme.sh申请let’s encrypt通配符域名
本文主要讲述在windows系统利用acme.sh申请https证书的方法,并且应用到IIS和Tomcat。
安装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 | export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" |
之后运行下面的命令申请(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”脚本
完成后双击或右键属性选择刚刚创建好的项目,设置安全选项下的选项“不管用户是否登陆都要运行”以及“使用最高权限运行”。