Centos下配置永久免费的泛域名Let’s Encrypt证书

1、安装 acme.sh

$ cd /opt 
$ curl  https://get.acme.sh | sh

说明:由于github的原因,如果下载慢,可以查看这里 https://github.com/acmesh-official/acme.sh/releases,下载tar.gz文件后传到服务器里
通过命令安装,最终的安装目录是:~/.acme.sh/

2、设置软链接

$ alias acme.sh=~/.acme.sh/acme.sh 

说明:acme.sh会自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书.

3、生成证书

acme.sh 实现了 acme 协议支持的所有验证协议. 一般有两种方式验证: http 和 dns 验证,这里仅介绍 DNS 方式

3.1、使用token创建

说明:这里以阿里云为例,其他云服务器可查看 https://github.com/acmesh-official/acme.sh/tree/master/dnsapi

修改 /etc/profile

$ vim /etc/profile

在末尾添加:
export Ali_Key="***"
export Ali_Secret="***"
替换成你自己的,获取请查看 https://ak-console.aliyun.com/#/accesskey

使修改生效:

$ source /etc/profile

创建证书:

$ acme.sh --issue --dns dns_ali -d example.com -d *.example.com 

说明:其中的example.com为你要创建泛域名证书的“根域名”
例如:a.com,则后面的参数为:*.a.com;
sub.a.com,则后面的参数为:*.sub.a.com

Ali_Key 和 Ali_Secret 将被保存在 ~/.acme.sh/account.conf , 命令中 dns_ali 指明使用 阿里的dns

本命令将自动为您生成一条txt类型的dns解析记录,在验证成功后,会删掉。该过程全自动。
证书成功生成后的默认目录为:~/.acme.sh/example.name/,如果要自定义输出目录,可在本命令中加参数:-w /etc/letsencrypt/example.com 
其中要用到的两个文件为:example.com.cer和example.com.key

3.2、添加一条 txt 解析记录

$ acme.sh  --issue  --dns -d example.com -d *.example.com

输出的解析记录示例如下:

Multi domain='DNS:bitcat.cc,DNS:*.example.com'
Getting domain auth token for each domain
Getting webroot for domain='example.com'
Getting webroot for domain='*.example.com'
Add the following TXT record:
Domain: '_acme-challenge.example.com'
TXT value: '<ACME_CHALLENGE_STRING>'
Please be aware that you prepend _acme-challenge. before your domain
so the resulting subdomain will be: _acme-challenge.example.com
Please add the TXT records to the domains, and retry again.
Please add '--debug' or '--log' to check more details.
See: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh

记录下其中的 <ACME_CHALLENGE_STRING> 并前往你的 DNS 服务提供商,为主机名 _acme-challenge 添加一条 TXT 记录,内容即为上述的 <ACME_CHALLENGE_STRING>。提交后可以等待一小段时间以便让 DNS 生效。

重新申请签发证书:

$ acme.sh --renew --dns -d example.com -d *.example.com

注意参数 --renew

4、更新证书

通过以上两种方式创建的证书有效期是90天,到期会自动更新

5、更新acme.sh

手动更新 :

$ acme.sh --upgrade

自动更新:

$ acme.sh  --upgrade  --auto-upgrade

关闭自动更新:

$ acme.sh --upgrade  --auto-upgrade  0

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论