Red Hat Training
A Red Hat training course is available for RHEL 8
57.4. Garantizar la presencia de un certificado firmado externamente en una entrada de servicio de IdM mediante un libro de jugadas de Ansible
En esta sección se describe cómo utilizar el módulo ansible-freeipa
service
para garantizar que un certificado emitido por una autoridad de certificación (CA) externa se adjunte a la entrada IdM del servicio HTTP. Tener el certificado de un servicio HTTP firmado por una CA externa en lugar de la CA IdM es especialmente útil si su CA IdM utiliza un certificado autofirmado.
Requisitos previos
- Ha instalado un servicio HTTP en su host.
- Ha inscrito el servicio HTTP en IdM.
- Tienes la contraseña de administrador de IdM.
- Dispone de un certificado firmado externamente cuyo Asunto se corresponde con el principal del servicio HTTP.
Procedimiento
Cree un archivo de inventario, por ejemplo
inventory.file
:$ touch inventory.file
Abra la página
inventory.file
y defina el servidor IdM que desea configurar en la sección[ipaserver]
. Por ejemplo, para indicar a Ansible que configure server.idm.example.com, introduzca:[ipaserver] server.idm.example.com
Haga una copia del archivo
/usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present.yml
, por ejemplo:$ cp /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present-copy.yml
Opcional: si el certificado está en formato PEM (Privacy Enhanced Mail), convierta el certificado al formato DER (Distinguished Encoding Rules) para facilitar su manejo a través de la interfaz de línea de comandos (CLI):
$ openssl x509 -outform der -in cert1.pem -out cert1.der
Decodifique el archivo
DER
a la salida estándar utilizando el comandobase64
. Utilice la opción-w0
para deshabilitar el envoltorio:$ base64 cert1.der -w0 MIIC/zCCAeegAwIBAgIUV74O+4kXeg21o4vxfRRtyJm...
- Copiar el certificado de la salida estándar al portapapeles.
Abra el archivo
/usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present-copy.yml
para editarlo y ver su contenido:--- - name: Service certificate present. hosts: ipaserver become: true gather_facts: false tasks: # Ensure service certificate is present - ipaservice: ipaadmin_password: MyPassword123 name: HTTP/www.example.com certificate: | - MIICBjCCAW8CFHnm32VcXaUDGfEGdDL/... [...] action: member state: present
Adapte el archivo:
-
Sustituya el certificado, definido mediante la variable
certificate
, por el certificado que ha copiado de la CLI. Tenga en cuenta que si utiliza la variablecertificate:
con el carácter de tubería || como se indica, puede introducir el certificado DE ESTA MANERA en lugar de tener que introducirlo en una sola línea. Esto facilita la lectura del certificado. -
Cambia la contraseña del administrador de IdM, definida por la variable
ipaadmin_password
. -
Cambie el nombre de su cliente IdM en el que se ejecuta el servicio HTTP, definido por la variable
name
. - Cambia cualquier otra variable relevante.
-
Sustituya el certificado, definido mediante la variable
- Guarde y salga del archivo.
Ejecute el playbook de Ansible especificando el archivo del playbook y el archivo de inventario:
$ ansible-playbook -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present-copy.yml
Pasos de verificación
- Inicie sesión en la interfaz web de IdM como administrador de IdM.
-
Navegue hasta
Identity
→Services
. - Haga clic en el nombre del servicio con el certificado recién añadido, por ejemplo HTTP/client.idm.example.com.
En la sección Service Certificate
, a la derecha, puede ver el certificado recién añadido.