acme自动申请ssl证书

免费的ssl证书申请有很多渠道,但很多都需要到期重新申请。acme可以到期自动重新申请新的证书,放哪里就不用管了。

acme.sh的官方github中提供的wiki:https://github.com/acmesh-official/acme.sh/wiki/说明

安装acme.sh

官方提供了三种常见的安装方式。分别为:使用curl直接从get.acme.sh在线安装,或者在github下载,或者git克隆了项目手动安装。

很不信,因为网络原因,前两种方式都直接被拒绝访问了。我只能使用第三种,使用git clone这个项目,并安装:

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install

如果想尝试前两种,可以参考官方github

生成证书

生成证书有两种验证方式,http和dns。

http方式是需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证. 然后就可以生成证书了。

但是我的根域名另有他用,故使用第二种dns验证。

dns验证也分两种,手动dns和自动dns,选择其中一种就可。

手动dns验证

手动dns就是在购买域名的地方手动添加acme生成的txt。使用下面的命令:

acme.sh  --issue  --dns   -d xxxxxxx.com

然后, acme.sh 会生成相应的解析记录显示出来, 你只需要在你的域名管理面板中添加这条 txt 记录即可.等待解析完成之后, 重新生成证书:

acme.sh  --renew   -d xxxxxxx.com

注意第二次这里用的是 --renew

自动dns验证

dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证。

自动dns需要使用购买域名的网站提供的api访问。比如阿里云:

使用阿里云域API自动颁发证书

首先,您需要登录到Aliyun帐户以获取API密钥。 https://ak-console.aliyun.com/#/accesskey

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

好的,让我们现在颁发证书:

acme.sh --issue --dns dns_ali -d example.com -d www.example.com

Ali_KeyAli_Secret将被保存~/.acme.sh/account.conf,需要时会被重用。

不同的运行商是不同的,请参考wiki,根据自己的运营商来:https://github.com/acmesh-official/acme.sh/wiki/dnsapi

如果需要申请泛域名证书,命令为:

acme.sh   --issue   --dns dns_ali   -d aa.com  -d "*.aa.com"

使用证书

将使用的路径指向生成的证书

以nginx举例。

ssl_certificate      /root/.acme.sh/xxxxx.com/fullchain.cer;
ssl_certificate_key  /root/.acme.sh/xxxxx.com/xxxxxx.com.key;

访问网站的时候就可以见到证书

posted @ 2021-01-15 15:55  HanJunOvO  阅读(968)  评论(0编辑  收藏  举报