coopdevs.certbot_nginx

Certbot NGINX

Rol de Ansible simple para instalar certbot con el plugin de NGINX en Ubuntu 16.04 y Ubuntu 18.04.

Esta rol hará:

  1. Agregar el repositorio PPA de certbot
  2. Instalar los paquetes certbot y python-certbot-nginx
  3. El paquete certbot añadirá un trabajo cron para renovación y un temporizador de systemd (Más info)
  4. Generar certificados SSL de Let's Encrypt para el domain_name dado.

Advertencia

Si ya tienes Nginx instalado con un sitio configurado que apunta a archivos en /etc/letsencrypt, la tarea de creación del certificado fallará (ejemplo).

En general, se recomienda ejecutar esta rol antes de cualquier otra rol que instale y configure Nginx.

Variables de la Rol

domain_name: www.mydomain.io
letsencrypt_email: [email protected]
certbot_nginx_cert_name: mycert # opcional
certbot_version: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # opcional
certbot_nginx_version: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # opcional

Si se establece, el valor de certbot_nginx_cert_name se pasará al argumento --cert-name de certbot, que se utiliza para identificar el certificado en comandos de certbot como certbot delete. Verás una lista de certificados identificados con este nombre al ejecutar certbot certificates. Este nombre también se usará como las rutas de archivo para el certificado en /etc/letsencrypt/live/.

Ejemplo de Playbook - Certificado único

# Playbook
- hosts: servers
  roles:
    - role: coopdevs.certbot_nginx
      vars:
        domain_name: www.mydomain.io
        letsencrypt_email: [email protected]

Ejemplo de Playbook - Creación de múltiples certificados

También permite generar y gestionar múltiples certificados en el mismo host. Puedes definir la variable domain_names y configurar una rol para incluir esta rol en un bucle.

# Playbook
- hosts: servers
  roles:
    - role: coopdevs.certbot_nginx
      vars:
        letsencrypt_email: [email protected]
    - role: certificates
      vars:
        domain_names:
          - community.coopdevs.org
          - forms.coopdevs.org

Crea una rol personalizada incluyendo la rol certbot_nginx que genera los certificados:

# certificates.yml Rol
---
- name: Instalar certificados SSL
  include_role:
    name: vendor/coopdevs.certbot_nginx
    tasks_from: certificate.yml
  with_items: "{{ domain_names }}"
  loop_control:
    loop_var: domain_name

Debes declarar el loop_control para mapear la variable item del bucle with_item con el valor loop_var como domain_name. Consulta la documentación de loop_control

Actualizando Certificados Existentes

Si los detalles de tu sitio han cambiado desde que se creó el certificado, puedes actualizar la lista de dominios y la rol verifica la diferencia entre los dominios presentes en el certificado y la lista de dominios proporcionada para decidir si necesita renovar el certificado o no. Si deseas forzar el proceso de renovación, puedes hacerlo definiendo certbot_force_update: true o pasando --extra-vars "certbot_force_update=true" desde la línea de comandos.

Entorno de Pruebas de Let's Encrypt

Esta rol incluye la variable letsencrypt_staging que por defecto está en no. Para fines de desarrollo o depuración, puedes establecerla en yes, por ejemplo, utilizando Pasando Variables en la Línea de Comando --extra-vars "letsencrypt_staging=yes".

Esto resultará en el uso del Entorno de Pruebas de Let's Encrypt y reducirá la posibilidad de encontrarse con límites de tasa.

Licencia

BSD

Información del Autor

Coopdevs http://coopdevs.org

Acerca del proyecto

free software for Social and Solidarity Economy

Instalar
ansible-galaxy install coopdevs.certbot_nginx
Licencia
Unknown
Descargas
36.4k
Propietario
Coopdevs, Free and Open Source Software for Social and Solidarity Economy.