1.下载并配置acme.sh环境([email protected] 修改成你的邮箱)
curl https://get.acme.sh | sh -s [email protected]如果出现 Install success 类似字样则说明配置成功;如果邮箱写错了,可以编辑 $HOME/.acme.sh/account.conf 进行修改。
2.查看是否开启自动续期
crontab -l
如果出现 “/root/.acme.sh”/acme.sh –cron –home “/root/.acme.sh” > /dev/null
类似字样则表明已经开启自动续期
3.使环境配置立即生效source ~/.bashrc4.配置证书申请源 (zerossl letsencrypt buypass ssl.com google)建议zerossl,因为letsencrypt越来越不被信任。acme.sh –set-default-ca –server zerossl如果出现 Changed default CA to: https://acme.zerossl.com/v2/DV90 类似字样则说明切换成功
证书申请分为两种
手动申请
步骤1.
acme.sh –issue –dns -d mydomain.com -d *.mydomain.com –yes-I-know-dns-manual-mode-enough-go-ahead-please
返回信息
Domain: ‘acme-challenge.mydomain.com’TXT value: ‘校验码’这个TXT出现几次就添加几条acme-challenge的TXT解析记录大约过10分钟左右(跟域名托管商有关)
步骤2
acme.sh –renew –dns -d mydomain.com -d *.mydomain.com –yes-I-know-dns-manual-mode-enough-go-ahead-please
如果出现 Cert success 类似字样则表明申请成功。
生成的证书文件都在以下目录中
$HOME/.acme.sh/mydomain.com_ecc/mydomain.com.key Key文件
$HOME/.acme.sh/mydomain.com_ecc/mydomain.com.cer
$HOME/.acme.sh/mydomain.com_ecc/ca.cer
$HOME/.acme.sh/mydomain.com_ecc/fullchain.cer 完整证书链
一般只需要用到mydomain.com.key 和 fullchain.cer
自动申请
acme.sh代码中 https://github.com/acmesh-official/acme.sh/tree/master/dnsapi 提供了很多域名托管商API接口,一般sh文件开头的几行会有需要提供的变量信息
这里以cloudflare为例 需要提供的环境变量如下:
export CF_Token=””
export CF_Account_ID=””
export CF_Zone_ID=””
或
export CF_Key=””
export CF_Email=””
然后执行
acme.sh –issue –dns dns_cf -d mydomain.com -d *.mydomain.com
同样会出现 success 类似字样的返回信息
手动申请和自动申请生成结果一样,证书都在同一个位置。这个tls证书申请成功后,可以运用到各种tls的场景中,不需要再 忽略证书校验 等操作,客户端服务端做到完全可信。
这个证书是90天一续,一定要准时检查,看是否自动续期成功。$HOME是环境变量指向的是用户主目录,一般为/root今天主要介绍的是如何申请可信证书和自动续期,如果有把证书部署到nginx等场景需求的建议去 https://github.com/acmesh-official/acme.sh 查看相应文档。
发表回复