免费申请ssl证书
注册账号
在网站 https://zerossl.com/ 注册账号,按下图步骤获取acme key , 将EAB KID 和 EAB HMAC key记录下来
安装和使用
参考网址:https://github.com/acmesh-official/acme.sh
# 安装
wget -O - https://get.acme.sh | sh
# 增加别名(非必要)
alias acme.sh=~/.acme.sh/acme.sh
# 进入到执行目录(非必要)
cd /root/.acme.sh
# 2023-1-1 更新,更换了默认证书提供商为zerossl
# https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA
# 绑定和配置账号,填入你前面记录的EAB KID和EAB HMAC key
./acme.sh --register-account --server zerossl \
--eab-kid <your kid> \
--eab-hmac-key <your key>
# 配置默认证书提供商
./acme.sh --set-default-ca --server zerossl
# 第一步
./acme.sh --debug --issue --dns -d *.saas.vppark.cn --yes-I-know-dns-manual-mode-enough-go-ahead-please --server zerossl
# 增加DNS txt验证记录
# 申请证书,多了一个参数 --renew
./acme.sh --debug --issue --renew --dns -d *.saas.vppark.cn --yes-I-know-dns-manual-mode-enough-go-ahead-please --server zerossl
# 查看本地证书
./acme.sh --list
# 更新所有的证书
acme.sh --renew-all --server zerossl
# 安装证书, 主要是两个文件,私匙(key)和证书(cer)
key: *.saas.vppark.cn.key
cer: fullchain.cer
# 查看证书过期日期
openssl x509 -enddate -noout -in fullchain.cer
openssl x509 -text -noout -in fullchain.cer
# 如果后续进行更新,使用的是zerossl,需要到zerossl网站下载更新的证书。并且将两个证书进行合并,否则会提示证书链不完整。
# 升级软件
acme.sh --upgrade
使用 阿里云 dnsapi自定添加域名认证
更多其他域名提供商api使用方法:https://github.com/acmesh-official/acme.sh/wiki/dnsapi
使用阿里云dns api时,需要先获取到Ali_Key和Ali_Secret,获取方法为
# 参考网站:https://github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_ali
# 设置阿里云dns api需要的key和secret
export Ali_Key="<key>"
export Ali_Secret="<secret>"
# 申请证书
./acme.sh --issue --dns dns_ali -d *.qq829.cn -d qq829.cn
# --dns dns_ali 使用阿里云dns api
# key保存于 /root/.acme.sh/account.conf
# 保存的key和secret被重命名为 SAVED_Ali_Key='<key>'和SAVED_Ali_Secret='<secret>'
# 如果你的dns提供商不支持acme api或者你没有权限管理主域名,可以使用dns cname模式
# 在主域名上增加cname记录
# acme需要验证的域名永远是 _acme-challenge.xxx.yyy.com
# 在你的主域名dns解析上面增加 _acme-challenge.xxx.yyy.com => _acme-challenge.qq829.cn 类似的记录
# 为了便于
# 使用dns别名自动验证域名并申请证书
./acme.sh --issue --dns dns_ali -d vppark.cn -d *.vppark.cn -d *.saas.vppark.cn -d *.ihg.vppark.cn -d *.devops.vppark.cn --challenge-alias acme-vppark-cn.qq829.cn --force
# --challenge-alias acme-vppark-cn.qq829.cn 指定dns别名,acme 将自动在别名域名上添加相关认证记录,使认证域名记录变成 _acme-challenge.acme-vppark-cn.qq829.cn
# 既主域名设置的别名于别名记录有一定的匹配关系
# 例如,主域名的别名设置应该是 _acme-challenge.saas.vppark.cn => _acme-challenge.acme-vppark-cn.qq829.cn
# 而不是 _acme-challenge.saas.vppark.cn => acme-vppark-cn.qq829.cn
# 而acme.sh命令行的参数 --challenge-alias 是 acme-vppark-cn.qq829.cn,既acme会自动加上 _acme-challenge 使之变成 _acme-challenge.acme-vppark-cn.qq829.cn 而与主域名对应上
# 查看证书过期日期
openssl x509 -enddate -noout -in fullchain.cer
openssl x509 -text -noout -in fullchain.cer