acme.sh配置泛域名证书Let'sEncrypt

2022-09-26 10:34:31 浏览数 (1)

acme.sh配置泛域名证书Let'sEncrypt

作者:matrix 被围观: 3,071 次 发布时间:2019-09-18 分类:Linux | 无评论 »

这是一个创建于 1078 天前的主题,其中的信息可能已经有所发展或是发生改变。

环境:

centos dnspod.cn

acme.sh项目:https://github.com/Neilpang/acme.sh

安装

代码语言:javascript复制
$ curl  https://get.acme.sh | sh

出现Install success!安装成功。

dns验证方式-获取域名dns token

这里使用域名解析服务商的token来进行域名拥有验证

在dnspod.cn上操作申请获取ID和token。

ssh执行命令设置变量,便于后面脚本读取。

代码语言:javascript复制
$ export DP_Id="000000"
$ export DP_Key="26****************************ed"

dns:

代码语言:javascript复制
$ export Ali_Id="000000"
$ export Ali_Key="26****************************ed"

dns获取api和key 进去申请AccessKey ID与Access Key Secret就好。

其他域名解析商的api token操作:

https://github.com/Neilpang/acme.sh/wiki/dnsapi

申请泛域名证书

为域名hhtjim.com申请证书。

代码语言:javascript复制
$ source .bashrc #执行资源更新 确保acme.sh别名可用
$ acme.sh --issue --dns dns_dp -d hhtjim.com -d *.hhtjim.com

说明:

dns_dp 为dnspod ,如果是dns则为 dns_ali

前面-d参数指定根域名,后面-d指定子级泛域名

.hhtjim.com的证书只能支持通配符当前级别的域名,也就是xxx.hhtjim.com

如果要三级子域名就需要单独申请:.xxx.hhtjim.com,参数为-d xxx.hhtjim.com -d *.xxx.hhtjim.com

执行之后等待几分钟出现绿色文字提示key,cer证书所在位置就酸完成了。

代码语言:javascript复制
The domain key is here: /root/.acme.sh/hhtjim.com/hhtjim.com.key

Your cert is in  /root/.acme.sh/hhtjim.com/hhtjim.com.cer 
Your cert key is in  /root/.acme.sh/hhtjim.com/hhtjim.com.key 
The intermediate CA cert is in  /root/.acme.sh/hhtjim.com/ca.cer 
And the full chain certs is there:  /root/.acme.sh/hhtjim.com/fullchain.cer

证书生成完成,使用的时候把证书移动到nginx配置相关目录。

nginx证书使用

代码语言:javascript复制
server {
    listen 443;
    server_name www.hhtjim.com;
    root /htdocs/www.hhtjim.com;
    index index.html index.htm index.php;
    ssl on;

    ssl_certificate /certificate_file_PATH/hhtjim.com/fullchain.cer;
    ssl_certificate_key /certificate_file_PATH/hhtjim.com/hhtjim.com.key;
    ...

ssl_certificate和ssl_certificate_key对应fullchain.cer和域名.key文件即可。

以后的所有子域名都可以使用这个路径的证书。

证书更新

脚本会自行写入crontab

代码语言:javascript复制
36 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

每天定时检测过期再更新。

参考:

https://github.com/Neilpang/acme.sh/wiki/说明

https://lnmp.org/faq/letsencrypt-wildcard-ssl.html

https://juejin.im/post/5b6542ed51882519d3468d6d

0 人点赞