用 acme.sh 获取HTTPS证书,支持通配符域名
前言
现在但凡是网站都还是需要用到HTTPS证书的。我先前使用cerbot.sh脚本和cerbot软件去生成letssencrypt证书。都不算是好用。知道最近发现的acme.sh。略作尝试后总结这个是我用过最方便的。不需要安装依赖,只需要做一些配置,就可以使用了。非常方便。在这里记录下使用的是方法。
用法方面可以直接参考这个链接;
acme.sh使用说明
配置dns服务商(阿里云为例)
如果你使用dns验证的方法,需要配置云服务的dns解析权限。上面教程给出了一些配置的方法使用export 参数的的方案,但实际上,也可以在 .acme.sh 文件夹里的account.conf 文件中配置。以下给出我的配置作为例子:
#LOG_FILE="/root/.acme.sh/acme.sh.log"
#LOG_LEVEL=1
#AUTO_UPGRADE="1"
#NO_TIMESTAMP=1
UPGRADE_HASH='377a37e4c9c23bb6988fe5f8863f21b19d3e3a40'
ACCOUNT_EMAIL='[email protected]'
SAVED_Ali_Key='阿里云的子用户key'
SAVED_Ali_Secret='阿里云的子用户Secret'
DEFAULT_ACME_SERVER='https://acme-v02.api.letsencrypt.org/directory'
你需要在阿里云账号创建一个子用户,授予dns的全部权限。如果你的云服务不是阿里云,你需要做相应的修改。
生成通配符证书
之后你可以使用一下命令生成通配符证书
acme.sh --issue --dns dns_ali -d aa.com -d *.aa.com
之后你在.acme.sh文件夹内生成aa.com_ecc文件夹,证书就在其中,且是通配符证书。
生成rsa证书
现在默认情况下,acme.sh 会自动生成ecc算法的证书,通常来说ecc算法要更好一些,但如果你需要rsa算法的证书,就需要调整下你的命令了。
acme.sh --issue --dns dns_ali -d *.aaa.com --keylength 2048
更多用法请查阅其他资料。