站点图标 Linux-技术共享

使用acme.sh申请ZeroSSL泛域名证书,Let’s Encrypt替代品

原来的ssl证书都是lnmp一键申请的,后来因为80端口问题,只能从运营商那边申请一年的,但是 都是单域名的没有泛域名的。其实已经知道有服务商早就推出免费的泛域名但是一直没有去了解,习惯真的很可怕,废话不多说  其实官方已经有比较详细的文档 按照官方的直接来就行了

这里小记下自己的一些点,首先因为我这边没有80端口 所以只能通过 手动 dns 方式, 手动在域名上添加一条 txt 解析记录, 验证域名所有权。

acme.sh 支持通过域名服务商的api接口直接操作,这里赞一个

具体的各个域名服务商可以参考这里

https://github.com/acmesh-official/acme.sh/tree/master/dnsapi

我的是腾讯云的 用的是dnspod 所以是dp

步骤:

安装 并设置环境变量

curl  https://get.acme.sh | sh
alias acme.sh=~/.acme.sh/acme.sh

安装后 以后生成的密钥都会在  ~/.acme.sh/ 目录下

去域名服务商那边申请对应的token

 

可以把对应的token 添加到环境变量中   vim ~/.bash_profile

export DP_Id="123456"
export DP_Key="abcdefg"

这样后续就可以让脚本自己去处理验证了

下面申请泛域名证书

第一种通过 80端口的 验证的 直接参考文档就可以

acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/wwwroot/mydomain.com/

第二种:txt验证  (前提是设置token或者自己添加)

export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"
acme.sh   --issue   --dns dns_dp   -d aa.com  -d www.aa.com

泛域名生成

acme.sh   --issue   --dns dns_dp   -d dpdp.fun  -d *.dpdp.fun

其实一样的  就是  第二个参数  是*.xxx.com

生成的密钥会放在~/.acme.sh/目录下 拷贝到对应的配置目录就可以

ssl_certificate /usr/local/nginx/conf/ssl/dpdp.fun/fullchain.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/dpdp.fun/dpdp.fun.key;

acme.sh 会自动生成一个crontab自动续期对应的ssh

41 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

其实整个流程很简单全部自动化脚本 就申请一个密钥罢了,再也不用每次都要去一个一个申请 下载 配置了。

退出移动版