bendews.letsencrypt-cloudflare

构建状态

LetsEncrypt-Cloudflare

这个角色简化了在使用Cloudflare作为DNS提供商时续订LetsEncrypt证书的过程。

需求

  • Python >= 2.6
  • OpenSSL(如果支持,将自动安装)

角色变量

可用的变量列在下面,并附有默认值(更多可以修改的变量见defaults/main.yml

必需字段:

letsencrypt_email: ""
cloudflare_email: ""
cloudflare_api_key: "" # 指定Cloudflare账户的“全局”API密钥
cloudflare_domain: "" # Cloudflare托管的DNS区域,用于创建条目

重要说明:

默认情况下,该角色将使用库存主机名作为公共名称请求证书,并将所有生成/接收的证书文件放在/etc/ssl/[证书公共名称]中,所有LetsEncrypt账户文件放在/etc/ssl/lets_encrypt中。这些路径都可以被覆盖(见defaults/main.yml)。

此外,证书文件在生成后也可以被复制并重命名到其他位置,通过修改以下任意变量:

copy_csr_full_path: ""
copy_crt_full_path: ""
copy_key_full_path: ""
copy_intermediate_full_path: "" # 需要将include_intermediate设置为'yes'
copy_fullchain_full_path: "" # 需要将include_intermediate设置为'yes'

该角色默认使用“临时”lets_encrypt端点,生成功能正常但不受信任的证书。为了生成有效的证书,请设置:

letsencrypt_production: yes

使用后,可以通过指定以下变量来删除生成的文件:

cleanup_all: yes

示例播放簿

- hosts: servers
  tasks:
    - name: 续订/下载新的SSL证书
      include_role:
        name: letsencrypt-cloudflare
      vars:
        letsencrypt_email: "[email protected]"
        cloudflare_email: "[email protected]"
        cloudflare_domain: "abc.com"
        cloudflare_api_key: "AAABBBCCCDDDEEE111222333"
        letsencrypt_production: yes
        include_intermediate: yes

待办事项:

  • 添加对多个CN的支持

许可证

MIT

作者信息

Ben Dews 于2017年创建

关于项目

LetsEncrypt renewal using Cloudflare DNS

安装
ansible-galaxy install bendews.letsencrypt-cloudflare
许可证
mit
下载
4.5k
拥有者
Engineer with a passion for network & infrastructure automation