acme.sh的安装和使用
看到我的SSL证书了吗,看看它的使用者可选名称或者叫做证书主题背景的备用名称,是不是有一大堆?且有2个不同的主域名:looyeagee.cn 和 csust-iotlab.com
对于一个多站点,甚至管理了不同二级域名的我来说:HTTPS证书问题是一大困扰问题。如今免费的DV证书提供商大约有三家:
1、Let’s Encrypt :3个月有效期,支持多域名、泛域名、不同域名签发到一张证书上,最多签发100个域名。
2、TrustAsia:1年有效期,单域名(签发根域名会赠送一个www的子域名)
3、DigiCert Inc提供的Encryption Everywhere DV TLS CA - G1:1年有效期,单域名(签发根域名会赠送一个www的子域名)
其中TrustAsia的兼容性应该是最好的,只不过它同一域名下只能签发20张,有数量限制,且不能签发泛域名。所以我打算选择Let’s Encrypt,虽然它的证书只有3个月,但是使用acme.sh能自动签发证书而且能够自动续签,十分方便。
使用如下命令安装acme.sh
1 | curl https://get.acme.sh | sh |
然后使用acme.sh命令即可使用它
使用DNSPOD密钥
我的域名是在腾讯云上买的,所以DNS服务商是DNSPOD,如果你的不是DNSPOD提供服务,acme.sh还支持如下:CloudFlare、Aliyun、等等110余个提供商。你可以点击这儿查看列表。只不过,就算你是在其他地方买的,也可以将域名交给DNSPOD解析。
值得注意的是,如果你有多个域名都想把它签发到一张证书上,你需要确保你的DNSPOD帐号都管理了这些域名,而不是说只要是由DNSPOD提供服务而已。
登录DNSPOD后,来到密钥管理界面,点击创建密钥,名称随缘。

点击确定后会弹出

注意保存好ID和Token到本地,信息只会展示一次。
申请证书
在终端执行
1 | export DP_Id="你的ID" |
然后我们即将进行签发证书,不过在此之前请注意,如果你的要申请的域名含有CNAME的解析记录,则最好将它暂停解析或者暂时用A记录代替。否则证书不能申请成功,当时我就有一个子域名做了CNAME记录,怎么也验证通过不了,网上提供的解决方法大多是错的。
然后执行
1 | acme.sh --issue -d *.looyeagee.cn -d looyeagee.cn -d *.home.looyeagee.cn -d *.frp.looyeagee.cn -d *.csust-iotlab.com -d csust-iotlab.com -d *.frp.csust-iotlab.com -d *.blog.csust-iotlab.com --dns dns_dp |
其中第一个-d会作为证书的公用名 (CN),你想申请几个就用几个-d即可。--dns dns_dp是指定DNSPOD服务商。若你的不是,你可以按照刚刚的DNS服务商列表查看参数。
这样,多域名、泛域名、不同域名合为一体的证书就签发完毕了。

