zenhack/simp_le

GitHub: zenhack/simp_le

一个轻量级 ACME 客户端,专注于自动化获取和续期 SSL 证书,不涉及 Web 服务器配置。

Stars: 226 | Forks: 37

# simp_le |Build Status| 简单的 `Let’s Encrypt`_ 客户端。 .. code:: shell ``` simp_le --email you@example.com -f account_key.json \ -f account_reg.json \ -f fullchain.pem -f key.pem \ -d example.com -d www.example.com --default_root /var/www/html \ -d example.net:/var/www/other_html ``` 更多信息请参阅 ``simp_le --help``。 注意:该代码库基本处于不再维护的状态;我会审查并合并 PR, 但我 (@zenhack) 已不再使用此工具,因此没有动力 进行其他积极的开发。 ## 项目历史 - @kuba 编写了最初的 https://github.com/kuba/simp\_le,当时 ACME 和 Let's Encrypt 还非常新;certbot 尚不支持 nginx, 并且对于一个简单的命令行 ACME 客户端来说,当时还存在一个未填补的空白。 - 后来 @kuba 停止维护 simp_le。几个月后出现了代码老化(bitrot), 修复问题的 PR 也未合并。 - 当故障开始影响 https://zenhack.net 时,我 (@zenhack) 复刻(fork) 了该项目,合并了 PR,修复了 CI 并开始维护该工具。这种情况 持续了几年。 - 我 (@zenhack) 转而使用 NixOS 的 acme 配置选项,并 将项目过渡到目前的半维护状态。 ## 宗旨 1. `UNIX philosophy`_:做一件事,并把它做好! 2. ``simp_le --valid_min ${seconds?} -f cert.pem`` 意味着 ``cert.pem`` 的有效期至少还有 ``valid_min``(默认为 2592000 秒 / 30 天)。如有必要,注册新的 ACME CA 账户。如果 未找到以前的密钥/证书/链,则颁发新证书。仅在 必要时续期。 3. 仅针对 ``${webroot?}/.well-known/acme-challenge`` 的(复杂) “管理器”。 不支持 ``http-01`` 以外的挑战。必须已在运行现有的 Web 服务器。 4. 没有神奇的 Web 服务器自动配置。 5. ``${webroot?}/.well-known/acme-challenge`` 的所有者必须能够 运行该脚本,而无需权限提升(``sudo``、``root`` 等)。 6. 对 ``crontab`` 友好:完全自动化 —— 无提示等。 7. 无配置文件。CLI 标志作为唯一接口!用户 应在必要时编写自己的包装脚本或使用 Shell 别名。 8. 支持具有多个根的多个域。每次 ``simp_le`` 运行始终创建单个 SAN 证书。 9. 灵活的存储功能。内置 ``simp_le -f fullchain.pem -f key.pem``, ``simp_le -f chain.pem -f cert.pem -f key.pem`` 等。 10. 不允许指定输出文件路径。用户应在必要时创建符号链接! 11. 不需要允许在续期发生时指定任意命令, 只需检查退出代码: - ``0`` 表示证书数据已创建或更新; - ``1`` 表示无需续期; - ``2`` 表示发生错误。 12. ``--server``(支持多个 ACME v2 CA)。 13. 支持撤销。 14. 隐式同意所选 ACME CA 的服务条款。 ## 安装 .. code:: shell ``` sudo ./bootstrap.sh ./venv.sh export PATH=$PWD/venv/bin:$PATH ``` ## 使用 Docker 如果您想在 Docker 中使用 simp_le,请查看 `simp\_le for Docker`_。 ## 帮助 请查看 https://github.com/zenhack/simp\_le/wiki/Examples 获取一些示例。 如果您遇到问题,请随时提 issue 询问。 .. _Let’s Encrypt: https://letsencrypt.org .. _UNIX philosophy: https://en.wikipedia.org/wiki/Unix_philosophy .. _simp\_le for Docker: docker .. |Build Status| image:: https://travis-ci.org/zenhack/simp_le.svg?branch=master :target: https://travis-ci.org/zenhack/simp_le ## 更新日志 以下是每个版本中引入的更改摘要。任何用户可见的 更改*必须*在此记录。请注意,最上面的条目有时 代表*下一个*(即尚未发布)的版本。 版本大约每两个月发布一次,除非有迫切需要 (例如安全和严重错误修复),或者自上一个版本以来没有任何 更改。 ## 0.20.0 * 将 python-acme 依赖项更新到 2.0 版本 ## 0.19.2 * 修复了一个次要的标准符合性问题,请参阅 https://github.com/zenhack/simp_le/pull/155 ## 0.19.1 * 添加了对 ``six`` 包的缺失依赖。 ## 0.19.0 * 添加了 ``--use_alt_chain`` 标志。 ## 0.18.1 * 修复了一个次要的协议符合性问题。 * 修复了 venv.sh 脚本中的一些代码老化问题(不适用于从 git repo 安装的情况)。 ## 0.18.0 * 将 acme 升级到 1.3 或更高版本。 * 修复了 simp_le 无法从 BuyPass ACME 获取证书的错误。 ## 0.17.0 * 将 acme 升级到 1.x ## 0.16.0 * 修复了 ACME v2 协议的不一致问题 * 将 acme 升级到 0.39.x ## 0.15.0 **请仔细阅读这些内容,因为此版本包含一些可能需要 在升级时进行更改的内容** * 从 ACME v1 切换到 ACME v2 端点支持。 对 ACME v1 端点的支持已完全取消。 如果您之前通过 ``--server`` 标志传递服务器端点,您将需要 将其更新为指向 v2 端点(或者直接删除它,以使用 Let's Encrypt 的 默认 v2 端点)。 * 除了 account_key.json 之外,还持久化 account_reg.json,并 在需要时恢复丢失的注册信息。*您现在 需要向 simp_le 传递一个 ``-f account_reg.json`` 选项* * 删除了 ``-f external.sh`` 功能。 * 放弃对 Python 2 和 3.4 的官方支持。 * 添加了对 Python 3.7 的官方支持(理论上它以前应该 可以工作,但我们现在开始测试它了)。 * 将 acme 升级到 0.35.x ## 0.14.0 * 将 acme 升级到 0.33.x ## 0.13.0 * 将 acme 升级到 0.31.x ## 0.12.0 * 将 acme 升级到 0.29.x ## 0.11.0 * 将 acme 升级到 0.27.x ## 0.10.0 * 将 acme 升级到 0.25.x ## 0.9.0 * 将 acme 升级到 0.24.x ## 0.8.1 * 添加了一个针对 pip 中错误导致的一些安装问题的变通方法。 ## 0.8.0 * 放弃对 Python 2.6 的官方支持 * 将 acme 升级到 0.22.x ## 0.7.0 * 删除了 ToS 哈希比较,如果存在则隐式同意 CA 的 ToS * 添加了对空或损坏的证书/密钥文件的检查 * 添加了一些针对电子邮件语法的健全性检查 * 将 acme 升级到 0.20.x ## 0.6.2 * 实现了 0.6.1 版本说明中提到的面向未来的功能。未来的 TOS 更改不应破坏 simp_le >= 0.6.2 ## 0.6.1 * 更新了 letsencrypt TOS 的哈希值。TOS 于 11 月 15 日更改, 这破坏了以前的版本。未来的版本不会硬编码哈希值, 这应该可以避免此类问题。 ## 0.6.0 * 放弃对 Python 3.3 的官方支持。 * 禁用自验证;这非常不可靠,并导致了 虚假警告。 * 改进了参数健全性检查和错误消息。 * 即使失败也保存 account_key.json * 清理临时挑战文件。 * 将 acme 升级到 0.19.x ## 0.5.1 * 添加了一个针对 pip 中错误导致的一些安装问题的变通方法 ## 0.5.0 * 将 acme 升级到 0.17.x ## 0.4.0 * 将 acme 升级到 0.16.x ## 0.3.0 * 修复了错误报告版本号的错误 * 将 acme 升级到 0.15.x ## 0.2.0 * 升级到 acme 0.11.x ## 0.1.1 * 更改了包名称;原始维护者拥有 simp_le PyPI 包,且未响应转让请求,因此包名称 现在为 'simp_le-client'。 ## 0.1.0 * 首次发布
标签:ACME 客户端, Cutter, DNS解析, HTTP-01 验证, HTTPS, Let's Encrypt, Python, Shell, SSL 证书, TLS, Web 服务器, 加密, 基础设施, 安全, 开源项目, 无后门, 漏洞扫描器, 续期, 网络调试, 自动化, 证书管理, 请求拦截, 超时处理, 逆向工具, 防御工具