Red Hat Training

A Red Hat training course is available for RHEL 8

57.4. Assegurar a presença de um certificado assinado externamente em uma entrada de serviço IdM usando um livro de jogos possível

Esta seção descreve como usar o módulo ansible-freeipa service para garantir que um certificado emitido por uma autoridade certificadora externa (CA) seja anexado à entrada do IdM do serviço HTTP. Ter o certificado de um serviço HTTP assinado por uma CA externa em vez do IdM CA é particularmente útil se o seu IdM CA usa um certificado autoassinado.

Pré-requisitos

Procedimento

  1. Criar um arquivo de inventário, por exemplo inventory.file:

    $ touch inventory.file
  2. Abra o inventory.file e defina o servidor IdM que você deseja configurar na seção [ipaserver]. Por exemplo, para instruir o Ansible a configurar server.idm.example.com, entre:

    [ipaserver]
    server.idm.example.com
  3. Faça uma cópia do arquivo /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present.yml, por exemplo:

    $ 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
  4. Opcional: Se o certificado estiver no formato Privacy Enhanced Mail (PEM), converta o certificado para o formato Distinguished Encoding Rules (DER) para facilitar o manuseio através da interface de linha de comando (CLI):

    $ openssl x509 -outform der -in cert1.pem -out cert1.der
  5. Decodifique o arquivo DER para a saída padrão usando o comando base64. Use a opção -w0 para desativar a embalagem:

    $ base64 cert1.der -w0
    MIIC/zCCAeegAwIBAgIUV74O+4kXeg21o4vxfRRtyJm...
  6. Copie o certificado da saída padrão para a prancheta.
  7. Abra o arquivo /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present-copy.yml para editar e visualizar seu conteúdo:

    ---
    - 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
  8. Adaptar o arquivo:

    • Substitua o certificado, definido usando a variável certificate, pelo certificado que você copiou da CLI. Observe que se você usar a variável certificate: com o caractere "||" do tubo como indicado, você pode inserir o certificado ESTE CAMINHO em vez de tê-lo para inseri-lo em uma única linha. Isto torna a leitura do certificado mais fácil.
    • Alterar a senha do administrador da IdM, definida pela variável ipaadmin_password.
    • Mude o nome de seu cliente IdM no qual o serviço HTTP está sendo executado, definido pela variável name.
    • Alterar quaisquer outras variáveis relevantes.
  9. Salvar e sair do arquivo.
  10. Execute a Pasta de reprodução possível especificando o arquivo da Pasta de reprodução e o arquivo do inventário:

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present-copy.yml

Etapas de verificação

  1. Entre na IDM Web UI como administrador da IdM.
  2. Navegue para IdentityServices.
  3. Clique no nome do serviço com o certificado recém-adicionado, por exemplo HTTP/client.idm.example.com.

Na seção Service Certificate à direita, você pode ver agora o certificado recém-adicionado.