Red Hat Training

A Red Hat training course is available for RHEL 8

50.4. Obtenção de um certificado IdM para um serviço utilizando o certmonger

Para garantir que a comunicação entre os navegadores e o serviço web rodando em seu cliente IdM seja segura e criptografada, use um certificado TLS. Se você quiser restringir os navegadores web a certificados de confiança emitidos pela sub-CA webserver-ca, mas nenhuma outra sub-CA da IdM, obtenha o certificado TLS para seu serviço web na sub-CA webserver-ca.

Esta seção descreve como usar certmonger para obter um certificado IdM para um serviço (HTTP/my_company.idm.example.com@IDM.EXAMPLE.COM) executado em um cliente IdM.

Usar certmonger para solicitar o certificado automaticamente significa que certmonger gerencia e renova o certificado quando ele deve ser renovado.

Para uma representação visual do que acontece quando certmonger solicita um certificado de serviço, veja Seção 50.5, “Fluxo de comunicação para o certmonger solicitando um certificado de serviço”.

Pré-requisitos

  • O servidor web está inscrito como cliente da IdM.
  • Você tem acesso root ao cliente IdM no qual você está executando o procedimento.
  • O serviço para o qual você está solicitando um certificado não tem que existir previamente na IdM.

Procedimento

  1. No cliente my_company.idm.example.com IdM no qual o serviço HTTP está funcionando, solicite um certificado para o serviço correspondente ao principal HTTP/my_company.idm.example.com@IDM.EXAMPLE.COM, e especifique que

    • O certificado deve ser armazenado no arquivo local /etc/pki/tls/certs/httpd.pem
    • A chave privada deve ser armazenada no arquivo local /etc/pki/tls/private/httpd.key
    • O sub-CA webserver-ca deve ser a autoridade emissora do certificado
    • Que uma extensãoRequest para um SubjectAltName seja adicionada ao pedido de assinatura com o nome 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.

      No comando acima:

      • O comando ipa-getcert request especifica que o certificado deve ser obtido junto à IdM CA. O comando ipa-getcert request é um atalho para getcert request -c IPA.
      • A opção -g especifica o tamanho da chave a ser gerada se ainda não existir uma.
      • A opção -D especifica o valor do DNS SubjectAltName a ser adicionado à solicitação.
      • A opção -X especifica que o emissor do certificado deve ser webserver-ca, e não ipa.
      • A opção -C instrui certmonger a reiniciar o serviço httpd após a obtenção do certificado.
      • Para especificar que o certificado seja emitido com um determinado perfil, use a opção -T.
      Nota

      O RHEL 8 utiliza um módulo SSL diferente no Apache do que o utilizado no RHEL 7. O módulo SSL se baseia no OpenSSL e não no NSS. Por este motivo, no RHEL 8 não é possível usar um banco de dados NSS para armazenar o certificado HTTPS e a chave privada.

  2. Opcionalmente, para verificar o status de seu pedido:

    # 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
    
    [...]

    A saída mostra que o pedido está no status MONITORING, o que significa que um certificado foi obtido. Os locais do par de chaves e do certificado são aqueles solicitados.