L-P.simp_le

ansible-role-simp_le

安装 simp_le,生成证书并在 Debian/Ubuntu 服务器上自动续订。

续订将通过 Ansible 远程用户每天尝试运行的 cron 作业来进行。

在 Ansible Galaxy 查看该角色: L-P.simp_le

注意:我开始使用 acmetool,并建议你在运行 Ubuntu ≥ 16.04 的新服务器上也这样做。

必需变量

我们将为其生成证书的虚拟主机列表:

simp_le_vhosts:
  - domains: ["www.example.com", "example.com"]
    root: "/path/to/challenges" # 可通过HTTP访问
    output: "/path/to/output/dir" # 写入证书的目录

LetsEncrypt 用于识别你并发送续订通知的电子邮件地址:

simp_le_email: "[email protected]"

你可以在主机上设置三个可选键:

  • usergroup 用于指定谁将拥有密钥、挑战和其父目录。 默认拥有者是 www-data:www-data
  • extra_args 用于传递额外参数给 simp_le,这可以用来使用 LetsEncrypt 的临时服务器或告诉 simp_le 在续订证书时重用密钥对。 如果你使用 TLSA 记录,这非常有用,你可以使用选择器类型 1(SubjectPublicKeyInfo),这样在证书续订时 TLSA 记录就不需要更改。
  • update_action 在证书续订时运行的命令,例如 systemctl restart apache2

示例:

simp_le_vhosts:
  - domains: ["smtp.example.com", "mail.example.com"]
    root: "/path/to/challenges"
    output: "/path/to/output/dir"
    user: "Debian-exim"
    group: "Debian-exim"
    extra_args: "--reuse_key --server https://acme-staging.api.letsencrypt.org/directory"
    update_action: "/bin/systemctl restart exim4"

有关更多配置,请查看 defaults/main.yml

服务器配置

你的服务器需要通过 HTTP 提供挑战文件,这里是一个你可以用于 nginx 的示例配置,将每个HTTP请求重定向到 HTTPS,除了挑战:

location /.well-known/acme-challenge/ {
    alias /var/www/challenges/.well-known/acme-challenge/;
    try_files $uri @forward_https;
}
location @forward_https {
    return 301 https://example.com$request_uri;
}
location / {
    return 301 https://example.com$request_uri;
}

示例剧本

- hosts: all
  roles:
    - {role: "L-P.simp_le", become: no}

虽然大部分操作无需使用 sudo,但仍然用于以正确的权限和所有者创建各种目录。

关于项目

simp_le installation and certificate generation for Ubuntu/Debian.

安装
ansible-galaxy install L-P.simp_le
许可证
mit
下载
143
拥有者