SSL Certbot 使用方法汇总
Certbot 是 Let’s Encrypt SSL 官方推荐的 ACME 协议客户端,它是一个 Python 程序,且包含模块化插件支持。Let’s Encrypt 的根证书浏览器支持广泛,且支持泛域名。但单个证书的有效期为 90 天,以防止滥用。
安装 Certbot
以下步骤演示在 Python3 环境中安装 Certbot 及其相关依赖
- 安装
certbot
pip install certbot
- 申请证书时,要使用 DNS 方式验证域名所有权并且 DNS 使用 Cloudflare 的情况下,可以安装
certbot-dns-cloudflare
插件实现自动验证,参考以下命令安装certbot-dns-cloudflare
,此模块需要cloudflare
模块的支持安装完成后检查相关模块和版本。其中pip install cloudflare
pip install certbot-dns-cloudflarecloudflare
版本需要最低为2.3.1
[1]以上模块安装完成后,即可使用pip list
certbot 2.10.0
certbot-dns-cloudflare 2.10.0
cloudflare 2.19.2certbot
申请域名证书,并支持 Cloudflare DNS 的自动验证。
基于 Cloudflare DNS 的自动验证申请域名证书
参考步骤安装 certbot
及 Cloudflare DNS 插件后 即可使用 certbot
自动请求 Cloudflare DNS 创建申请证书时需要的 DNS 记录自动完成域名归属权的验证过程。
certbot
支持的 Cloudflare 相关的参数如下
参数 | 说明 | 示例 |
---|---|---|
--dns-cloudflare |
使用 Cloudflare 的 DNS 插件自动验证域名归属权 | |
--dns-cloudflare-credentials |
请求 Cloudflare 的授权配置文件 | |
--dns-cloudflare-propagation-seconds |
请求 Cloudflare DNS 添加相关 DNS 记录后,让 ACME 服务等待多少秒再验证 DNS 记录。主要用来防止 DNS 记录添加后,缓存 DNS 服务器未来得及更新最新记录。 默认为 10 |
假设有 Cloudflare 账号的 Global API Key,则 Credentials 配置文件内容参考如下
Cloudflare API credentials used by Certbot |
申请证书的具体命令如下,如果是第一次申请,需要根据提示填写自己的邮箱信息并同意许可协议,邮箱用于接受之后系统发送的错误或者域名证书过期等信息
certbot certonly \ |
如果是非交互式环境,可以使用参数
--email your-email@example.com
和--agree-tos
自动绑定邮箱并同意许可
其他常用参数
参数 | 说明 | 示例 |
---|---|---|
--cert-path |
指定证书存放路径 | --cert-path /path/to/certificate.pem |
--key-path |
密钥存放路径 | |
--fullchain-path |
full certificate chain 存放路径 | |
--chain-path |
证书链存放路径 | |
--non-interactive |
使用非交互模式。建议在自动化脚本中使用 | |
--quiet |
减少输出,只输出关键信息 |