在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:letscertbot开源软件地址:https://gitee.com/jimcheung/letscertbot开源软件介绍:Let's CertbotLet's Certbot 是一个基于 Certbot 用于自动化获取、续期、部署 SSL 证书的工具。 为了验证你的域名,Let's Certbot 使用了 Certbot 的 dns 方式进行验证。这对比 http 方式验证,你不需要在已部署的 Web 应用中进行任何操作,同时你也可以申请通配符证书。 在 dns 验证过程中,你需要为你的域名设置一个指定内容的 TXT DNS 记录。Let's Certbot 将会通过域名服务商的 DNS API 帮助你设置。 目前支持的域名服务商: 示例安装Let's Certbot 作为一个 Certbot 工具,支持 Docker 容器或非容器方式安装。 下载仓库首先,克隆本仓库以获取 Let's Certbot: $ git clone [email protected]:jinhucheung/letscertbot.git 然后拷贝配置文件: $ cd letscertbot$ cp config.json.example config.json 容器安装你可以通过 Docker 来执行 Let's Certbot: $ sudo docker run --rm --name letscertbot -v "$your_letscertbot_home/config.json:/app/config.json" -v "$your_letscertbot_home/tlds.txt:/app/tlds.txt" -v "/etc/letsencrypt:/etc/letsencrypt" -v "/var/lib/letsencrypt:/var/lib/letsencrypt" jimcheung/letscertbot 如果你已安装 Docker Compose, 可以通过 Compose 执行: $ sudo docker-compose run --rm app 非容器安装Let's Certbot 与 Certbot 执行环境一致,要求执行在类 UNIX 操作系统上且需要 Python 2.7 或 3.4+。 首先,你需要确认 Python 是否已经安装: $ python --version 如果没有问题,根据 Certbot 官方文档 为你的操作系统安装 Certbot。 在安装完 Certbot 后,使用 root 执行 Certbot: $ sudo certbot --version 使用配置在执行 Let's Certbot 前,你有以下的配置需要更新:
此外, DNS API获取证书前,你可以执行 manual 脚本 ( # 容器方式$ sudo docker-compose run --rm app manual --test --domain your.example.com --dns aliyun# 非容器方式$ sudo python ./bin/manual.py --test --domain your.example.com --dns aliyun 这个脚本将会通过指定的 DNS API 添加 获取证书使用 root 执行 obtainment 脚本 ( # 容器方式$ sudo docker-compose run --rm app obtain -d your.example.com *.your.example.com# 非容器方式$ sudo python ./bin/obtain.py -d your.example.com *.your.example.com 然后你将在 你可以提供 # 容器方式$ sudo docker-compose run --rm app obtain -d x.example.com y.example.com --cert xny.example.com# 非容器方式$ sudo python ./bin/obtain.py -d x.example.com y.example.com --cert xny.example.com 如果你的域名提供商不支持 DNS API, 或者你担心暴露主要域名的 ACCESS TOKEN 会带来安全问题,这时候你可以使用 DNS alias 模式,如: # 容器方式$ sudo docker-compose run --rm app obtain -d x.main_domain.com y.main_domain.com --dns qcloud --challenge-alias alias_domain.com# 非容器方式$ sudo python ./bin/obtain.py -d x.main_domain.com y.main_domain.com --dns qcloud --challenge-alias alias_domain.com 执行上面的命令,Let's Certbot 对 _acme-challenge.x.main_domain.com => _acme-challenge.alias_domain.com_acme-challenge.y.main_domain.com => _acme-challenge.alias_domain.com 续期证书使用 renewal 脚本 ( # 容器方式$ sudo docker-compose run --rm app renewal# 非容器方式$ sudo python ./bin/renewal.py Certbot 将为所有即将到期的证书续期。 你可以设置一个计划任务,将 renewal 脚本添加到 # 容器方式0 0 */7 * * sudo docker-compose -f $your_letscertbot_home/docker-compose.yml run --rm app renewal > /var/log/letscertbot-renewal.log 2>&1# 非容器方式0 0 */7 * * sudo $your_letscertbot_home/bin/renewal.py > /var/log/letscertbot-renewal.log 2>&1 这个计划任务将每 7 天执行 renewal 脚本。 如果你需要强制为指定的证书续期,可以提供 # 容器方式$ sudo docker-compose run --rm app renewal --certs xny.example.com --force# 非容器方式$ sudo python ./bin/renewal.py --certs xny.example.com --force 部署证书如果你将 Let's Certbot 通过 SSH 为远程服务器部署证书,这意味着你执行 Certbot 的机器须通过 SSH 连接上远程服务器。为了使连接成功,你需要上传公钥到远程服务器或者提供 此外,为了将证书部署到 你可以通过执行下面命令获取 deployment 脚本: # 容器方式$ sudo docker-compose run --rm app deploy --check# 非容器方式$ sudo python ./bin/deploy.py --check 如果需要推送证书到配置中的服务器,可以执行: # 容器方式$ sudo docker-compose run --rm app deploy --push --cert $certificate_name --server $server_host# 非容器方式$ sudo python ./bin/deploy.py --push --cert $certificate_name --server $server_host Note: 如果 Note: 如果你以容器方式运行 Let's Certbot,同时需要在部署证书后重启本地 nginx 服务,则应该使用远程服务器方式配置本地服务器。 致谢贡献欢迎报告 Bug 或提交 Pull Request。
如有必要,请为你的代码编写单元测试。 许可根据 MIT 许可的条款,此仓库可作为开放源代码使用。 |
请发表评论