Red Hat Training

A Red Hat training course is available for RHEL 8

50.4. Obtención de un certificado IdM para un servicio mediante certmonger

Para garantizar que la comunicación entre los navegadores y el servicio web que se ejecuta en su cliente IdM sea segura y esté cifrada, utilice un certificado TLS. Si desea restringir los navegadores web para que confíen en los certificados emitidos por la sub-CA webserver-ca pero no en ninguna otra sub-CA de IdM, obtenga el certificado TLS para su servicio web de la sub-CA webserver-ca.

Esta sección describe cómo utilizar certmonger para obtener un certificado IdM para un servicio (HTTP/my_company.idm.example.com@IDM.EXAMPLE.COM) que se ejecuta en un cliente IdM.

El uso de certmonger para solicitar el certificado de forma automática significa que certmonger gestiona y renueva el certificado cuando se debe renovar.

Para ver una representación visual de lo que ocurre cuando certmonger solicita un certificado de servicio, consulte Sección 50.5, “Flujo de comunicación para el certmonger que solicita un certificado de servicio”.

Requisitos previos

  • El servidor web se inscribe como cliente de IdM.
  • Tienes acceso de root al cliente IdM en el que estás ejecutando el procedimiento.
  • El servicio para el que se solicita un certificado no tiene por qué existir previamente en IdM.

Procedimiento

  1. En el cliente my_company.idm.example.com IdM en el que se ejecuta el servicio HTTP, solicite un certificado para el servicio correspondiente a la entidad de seguridad HTTP/my_company.idm.example.com@IDM.EXAMPLE.COM y especifique que

    • El certificado debe almacenarse en el archivo local /etc/pki/tls/certs/httpd.pem
    • La clave privada debe almacenarse en el archivo local /etc/pki/tls/private/httpd.key
    • La sub-CA webserver-ca debe ser la autoridad de certificación emisora
    • Que se añada una extensionRequest para un SubjectAltName a la solicitud de firma con el nombre DNS de my_company.idm.example.com:

      # ipa-getcert request -K HTTP/my_company.idm.example.com -k /etc/pki/tls/private/httpd.key -f /etc/pki/tls/certs/httpd.pem -g 2048 -D my_company.idm.example.com -X webserver-ca -C "systemctl restart httpd"
      New signing request "20190604065735" added.

      En el comando anterior:

      • El comando ipa-getcert request especifica que el certificado debe obtenerse de la CA de IdM. El comando ipa-getcert request es un atajo para getcert request -c IPA.
      • La opción -g especifica el tamaño de la clave que se generará si no existe ya una.
      • La opción -D especifica el valor DNS de SubjectAltName que se añadirá a la solicitud.
      • La opción -X especifica que el emisor del certificado debe ser webserver-ca, no ipa.
      • La opción -C indica a certmonger que reinicie el servicio httpd después de obtener el certificado.
      • Para especificar que el certificado se emita con un perfil determinado, utilice la opción -T.
      Nota

      RHEL 8 utiliza un módulo SSL en Apache diferente al utilizado en RHEL 7. El módulo SSL se basa en OpenSSL y no en NSS. Por esta razón, en RHEL 8 no se puede utilizar una base de datos NSS para almacenar el certificado HTTPS y la clave privada.

  2. Opcionalmente, para comprobar el estado de su solicitud:

    # ipa-getcert list -f /etc/pki/tls/certs/httpd.pem
    Number of certificates and requests being tracked: 3.
    Request ID '20190604065735':
        status: MONITORING
        stuck: no
        key pair storage: type=FILE,location='/etc/pki/tls/private/httpd.key'
        certificate: type=FILE,location='/etc/pki/tls/certs/httpd.crt'
        CA: IPA
        issuer: CN=WEBSERVER,O=IDM.EXAMPLE.COM
    
    [...]

    La salida muestra que la solicitud está en el estado MONITORING, lo que significa que se ha obtenido un certificado. Las ubicaciones del par de claves y del certificado son las solicitadas.