L-P.simp_le
ansible-role-simp_le
Instala simp_le, genera certificados y los renueva automáticamente en servidores Debian/Ubuntu.
La renovación se intentará diariamente a través de un trabajo cron ejecutado por el usuario remoto de Ansible.
Consulta el rol en Ansible Galaxy: L-P.simp_le
Nota: Empecé a usar acmetool y te recomiendo que hagas lo mismo para cualquier nuevo servidor que ejecute Ubuntu ≥ 16.04.
Variables requeridas
Una lista de hosts virtuales para los cuales generaremos certificados:
simp_le_vhosts:
- domains: ["www.ejemplo.com", "ejemplo.com"]
root: "/ruta/a/challenges" # accesible a través de HTTP
output: "/ruta/a/directorio/salida" # donde se escribirán los certificados
Una dirección de correo electrónico que LetsEncrypt usará para identificarte y enviar avisos de renovación:
simp_le_email: "[email protected]"
Hay tres claves opcionales que puedes configurar en los hosts:
user
ygroup
para especificar quién será el propietario de las claves, desafíos y su directorio principal. El propietario por defecto eswww-data:www-data
.extra_args
para pasar argumentos adicionales a simp_le; esto se puede usar para utilizar el servidor de pruebas de LetsEncrypt o para indicarle a simp_le que reutilice el par de claves al renovar el certificado. Esto es útil si estás usando registros TLSA, ya que puedes usar el tipo de Selector 1 (SubjectPublicKeyInfo) y tu registro TLSA no necesitará cambiar cuando se renueve el certificado.update_action
, un comando que se ejecutará cuando se renueve un certificado, por ejemplo,systemctl restart apache2
.
Ejemplo:
simp_le_vhosts:
- domains: ["smtp.ejemplo.com", "mail.ejemplo.com"]
root: "/ruta/a/challenges"
output: "/ruta/a/directorio/salida"
user: "Debian-exim"
group: "Debian-exim"
extra_args: "--reuse_key --server https://acme-staging.api.letsencrypt.org/directory"
update_action: "/bin/systemctl restart exim4"
Consulta defaults/main.yml
para más configuración.
Configuración del servidor
Tu servidor necesita servir los archivos de desafío a través de HTTP; aquí hay un ejemplo de configuración que puedes usar para nginx, que redirigirá cada solicitud HTTP a HTTPS, a excepción de los desafíos:
location /.well-known/acme-challenge/ {
alias /var/www/challenges/.well-known/acme-challenge/;
try_files $uri @forward_https;
}
location @forward_https {
return 301 https://ejemplo.com$request_uri;
}
location / {
return 301 https://ejemplo.com$request_uri;
}
Ejemplo de playbook
- hosts: all
roles:
- {role: "L-P.simp_le", become: no}
Aunque la mayoría de las operaciones se realizan sin sudo
, aún se utiliza para crear los diversos directorios con los permisos y propietarios adecuados.
simp_le installation and certificate generation for Ubuntu/Debian.
ansible-galaxy install L-P.simp_le