前言

最近一直在慢慢的学习shell,于是打算用实战来强化学到的知识点,所以花了半天时间写了一个交互式的脚本,用于自动申请Let's Encrypt泛域名证书使用.欢迎大家使用.

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

申请流程

获取域名服务商 API

申请域名最重要和最麻烦的地方就是验证域名所有权,常规情况下使用域名服务商的 API 来自动创建 txt 验证记录最为方便.

参考以下链接获取国内用户常用的腾讯云/阿里云/Cloudflare的 API :

参考官方文档可以获取多达100多个全球各种域名服务商的 API :

交互式脚本

交互式脚本仅支持 腾讯云 / 阿里云 / Cloudflare

执行以下命令直接使用,根据提示输入相关 API 信息即可申请.

curl -O https://gist.githubusercontent.com/stilleshan/02d8652ce320941e497d378a04ecf016/raw/ffb5c536735a2d90390c98d7bbbe0ff63a74ba52/acme_docker.sh && chmod +x acme_docker.sh && ./acme_docker.sh

非交互式固定域名证书申请

通过简单修改脚本,可以让本脚本作为固定证书申请使用.无交互式选项直接根据设置的域名和 API 信息进行申请.建议可以设置crontab定时每月执行.

非交互式脚本可以支持 acme.sh 官方支持的 100 多个全球各种域名服务商的 API

编辑脚本修改 16 - 20 行.以下为示例:

# 交互式脚本请保持以下 DOMAIN= 为空不要修改.如无需交互式,固定申请单一证书,请参考文档自行修改以下变量.
DOMAIN=ioiox.com
DNSAPI='dns_cf'
API_ID='export CF_Token="xxxxxxxxxxxxx"'
API_KEY='export CF_Account_ID="xxxxxxxxxxxxx"'
# API_ZONE='export CF_Zone_ID="xxxxxxxxxxxxx"'
# 交互式脚本请保持以下 DOMAIN= 为空不要修改.如无需交互式,固定申请单一证书,请参考文档自行修改以上变量.

结语

本脚本长期维护,后续会慢慢更新以支持更多服务商.可以访问以下gist地址star收藏:
https://gist.github.com/stilleshan/02d8652ce320941e497d378a04ecf016

本站提供免费和付费的技术支持.你可以通过留言,邮件,TG群的方式来技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面

如果喜欢我的文章,觉得对你有帮助,请随意赞赏!