手把手申请及自动更新https免费证书,亲测有效!

如题所述

第1个回答  2022-07-01

Let’s Encrypted的证书只有三个月的免费期, 使用acme.sh脚本可实现自动更新https证书。以阿里云为例,申请域名为 me2you.online泛域名

1、安装curl https://get.acme.sh | sh

2、运行命令后在当前用户目录下生成目录.acme.sh,并自动增加crontab内容。

3、acme.sh建议使用DNS验证方式,在阿里云的账户配置ID和Secret。

不同DNS的证书配置方式见 ~/.acme.sh/dnsapi/README.md

以阿里云为例

在登陆界面的命令行输入

[root@demo ~]$ export Ali_Key="xxx"

[root@demo ~]$ export Ali_Secret="xxx"

信息会在~/.acme.sh/account.conf 文件记录, 以备下次使用。

4 生成泛域名证书

acme.sh --issue --dns dns_ali -d me2you.online -d *.me2you.online

5\查看证书

[ngx@demo .acme.sh]$ acme.sh --list

5、安装证书

acme.sh --install-cert -d me2you.online \

--key-file /application/nginx/certs/me2you.online/me2you.online.key \

--fullchain-file /application/nginx/certs/me2you.online/me2you.online.cer \

--reloadcmd "/application/nginx/sbin/nginx -s reload"

命令的参数会被记录下来, 下次证更新的时候会自动运行。

6、 nginx成功测试

其它说明:

7、删除证书

acme.sh --remove -d *domain.com

8、目前由于acme协议和Let’s Encrypt CA都在频繁的更新,因此acme.sh也经常更新以保持同步,如果需要更新acme.sh版本的话,通过以下方式即可更新版本:

1.手动更新: acme.sh --upgrade

2.自动更新: acme.sh --upgrade --auto-upgrade ,之后acme.sh就会自动保持更新。

3. 关闭自动更新: acem.sh --upgrade --auto-upgrade 0