在阿里云上弄了一个ECS小鸡,架了一个博客,域名也是阿里云的,跟风上了SSL,证书用的是免费的 Lets Encrypt,Lets Encrypt非常好,就是证书的期限只有3个月,3个月内要续期,这就比较麻烦了。
对于Linux主机来说,网上有大把的教程怎么自动续期证书,但是windows就比较麻烦了。
3个月前搜了很久才找到一个 win-acme,按教程,还是比较容易就申请到了两个泛域名证书,但是自动续期需要验证域名的txt记录,本人对PS脚本不熟,对怎么用脚本添加域名txt记录七窍通了六窍,真是可恨。
好在阿里云有SDK可以操作云解析,把C#的SDK整到一个小程序里,实现了简单调用就能修改域名txt记录,然后简单写2个脚本配合一下就OK了。
先上脚本:
ali-dns.ps1:(C:\win-acme\Alidns\ 是存放Alidns.exe的路径,不要有空格,支持二级泛域名txt记录)
$action = $args[0]
$zone = $args[1]
if ($zone.Split(".").length -gt 2)
{
$zone = $zone.Substring($zone.indexOf(".") + 1)
}
$name = $args[2].Replace($zone,"").Trim(".")
if($action -eq "create") {
$text = $args[3]
C:\win-acme\Alidns\Alidns.exe $action $zone $name $text
}elseif($action -eq "delete") {
C:\win-acme\Alidns\Alidns.exe $action $zone $name
}
restartNginx.bat:(使用了Nginx来发布网站,把Nginx注册成了windows的服务,更新证书后调用此脚本重启Nginx,否则新证书不生效)
net stop "Nginx Service"
net start "Nginx Service"
Alidns.exe.config:(需要把在阿里云申请到的AppKey和AppSecret填入Alidns.exe的配置文件)
<appSettings>
<add key="AliAppKey" value="Here Is Your AliAppKey"/>
<add key="AliAppSecret" value="Here Is Your AliAppSecret"/>
</appSettings>
更新域名txt记录的程序在这里下载:
Alidns.zip
这里主要记录 Alidns.exe 的使用方法, win-acme的使用教程就不细说了,网上一搜一大把。