mprahl.lets-encrypt-route-53
lets-encrypt-route-53
Este es un rol de Ansible que automatiza la generación de certificados firmados por Let's Encrypt con desafíos DNS en Route 53 de Amazon (AWS).
Por favor, ten en cuenta que como parte de este rol se instalarán openssl
, boto y pyOpenSSL. Si utilizas CentOS, RHEL o Mac OS, el rol instalará pip
y luego instalará boto
y pyOpenSSL
en un entorno virtual de Python, ya que las versiones empaquetadas no están disponibles o no son lo suficientemente recientes. Ten en cuenta que se requiere EPEL en CentOS y RHEL.
Si no usas este rol en Debian/Ubuntu, CentOS/Red Hat, Mac OS o FreeBSD, openssl
, boto
y pyOpenSSL
deben ser instalados manualmente antes de usar este rol.
Requisitos
Se requiere Ansible 2.7 o superior para este rol. Si usas una versión más antigua de Ansible, utiliza la versión 4.2.1 de este rol. Este rol también debe ser ejecutado como root o mediante sudo/become.
Etiquetas del Rol
- install - se usa para etiquetar las tareas que instalan las dependencias requeridas.
- openssl - se usa para etiquetar las tareas que generan las claves privadas y CSR.
Variables del Rol
Hechos Establecidos Por El Rol
- ler53_cert_changed - se establece en
True
cuando se crea o renueva el certificado.
Variables Requeridas
- ler53_route_53_domain - el dominio de Route 53 (AWS) para el cual se está generando el certificado SSL. Este es un parámetro requerido si no se proporciona el parámetro
ler53_route_53_zone_id
. - ler53_route_53_zone_id - el zone_id de Route 53 (AWS) para el cual se está generando el certificado SSL. Este es un parámetro requerido si no se proporciona el parámetro
ler53_route_53_domain
. Usa este parámetro si no tienes derechos de AWS para realizar route53:ListHostedZones.
Variables Opcionales
- ler53_cert_common_name - el nombre común para el certificado SSL que se está generando. Por defecto, esto es el valor de
ansible_fqdn
. - ler53_cert_sans - una lista de nombres alternativos del sujeto DNS (SAN) del mismo dominio que se especifica en
ler53_route_53_domain
que se incluirán en el CSR. Ten en cuenta que un SAN DNS para el valor deler53_cert_common_name
se añade automáticamente y no debe ser agregado a esta lista. Esta variable no está definida por defecto. - ler53_cert_key_usages - una lista de usos de clave que se incluirán en el CSR (Let's Encrypt puede restringir algunos). Por defecto, esto es
digitalSignature
ykeyEncipherment
. - ler53_key_size - el tamaño de la clave privada que se empareja con el certificado que se está generando. Por defecto, esto es
2048
. - ler53_cert_dir - la ruta al directorio donde se almacenarán la clave privada, el CSR y el certificado. Por defecto, esto es
/etc/ssl/{{ ler53_cert_common_name }}
. - ler53_key_file_name - el nombre del archivo de la clave privada que se empareja con el certificado que se está generando. Por defecto, esto es
{{ ler53_cert_common_name }}.key
. - ler53_cert_file_name - el nombre del archivo del certificado que se está generando. Por defecto, esto es
{{ ler53_cert_common_name }}.crt
. - ler53_csr_file_name - el nombre del archivo de la solicitud de firma de certificado (CSR) que se está generando. Por defecto, esto es
{{ ler53_cert_common_name }}.csr
. - ler53_intermediate_file_name - el nombre del archivo de la CA intermedia descargada de Let's Encrypt. Por defecto, esto es
{{ ler53_cert_common_name }}.intermediate.pem
. - ler53_cert_and_intermediate_file_name - el nombre del archivo creado con el certificado y la CA intermedia concatenados. Por defecto, esto es
{{ ler53_cert_common_name }}.pem
. - ler53_cert_files_mode - el modo/ permisos del archivo a forzar en la clave privada, CSR y certificado. Por defecto, esto es
0600
. - ler53_cert_files_owner - el propietario del archivo que se forzará en la clave privada, CSR y certificado. Por defecto, esto es
root
. - ler53_cert_files_group - el grupo de archivos que se forzará en la clave privada, CSR y certificado. Por defecto, esto es
root
. - ler53_account_email - un correo electrónico para asociar con tu cuenta de Let's Encrypt. Por favor, consulta el Módulo de Let's Encrypt para más información.
- ler53_account_key_size - el tamaño de la clave de la cuenta de Let's Encrypt que se generará si no está presente. Por defecto, esto es
2048
. - ler53_account_key_dir - la ruta al directorio donde se almacenará la clave de la cuenta de Let's Encrypt. Por defecto, esto es
/etc/ssl/lets_encrypt
. - ler53_account_key_file_name - el nombre del archivo de la clave de la cuenta de Let's Encrypt. Por defecto, esto es
lets_encrypt_account.key
. - ler53_cert_remaining_days_before_renewal - el número mínimo de días que debe quedar para que el certificado actual sea válido antes de renovarlo. Por defecto, esto es
10
. - ler53_new_cert_when_csr_changes - eliminar el certificado existente cuando cambie el CSR. Esto es útil cuando cambias el nombre común o SAN en tu certificado y deseas generar un nuevo certificado sin esperar a que expire. Por defecto, esto es
false
. - ler53_cert_extended_key_usages - Restricciones adicionales (por ejemplo, autenticación del cliente, autenticación del servidor) sobre los propósitos permitidos para los que se puede usar la clave pública.
- ler53_service_handlers - Una lista de diccionarios que describen los manejadores de servicio que se ejecutarán cuando se actualice un certificado en el formato
{'name': 'httpd', 'state': 'restarted'}
. - ler53_acme_directory - El directorio ACME a usar. Por defecto, esto es
https://acme-v02.api.letsencrypt.org/directory
. Esto puede ser útil para sobrescribir si deseas probar este rol contra la instancia de prueba de Let's Encrypt. - ler53_aws_access_key - la clave de acceso para un usuario de AWS que tiene permiso para añadir registros al dominio para el cual se está generando el certificado SSL. Si no se especifica, el SDK de AWS determinará la clave de acceso.
- ler53_aws_secret_key - la clave secreta para un usuario de AWS que tiene permiso para añadir registros al dominio para el cual se está generando el certificado SSL. Si no se especifica, el SDK de AWS determinará la clave secreta.
Ejemplo de Playbook
- name: Generar un certificado SSL para host.example.com
hosts: host
become: yes
vars:
- ler53_cert_common_name: host.example.com
- ler53_route_53_domain: example.com
roles:
- mprahl.lets-encrypt-route-53
Licencia
MIT
automates the generation of Let's Encrypt signed certificates with DNS challenges on Amazon's Route 53 (AWS)
ansible-galaxy install mprahl.lets-encrypt-route-53