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
- Você instalou um serviço HTTP em seu host.
- Você cadastrou o serviço HTTP para a IdM.
- Você tem a senha de administrador da IdM.
- Você tem um certificado assinado externamente, cujo Assunto corresponde ao principal do serviço HTTP.
Procedimento
Criar um arquivo de inventário, por exemplo
inventory.file
:$ touch inventory.file
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
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
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
Decodifique o arquivo
DER
para a saída padrão usando o comandobase64
. Use a opção-w0
para desativar a embalagem:$ base64 cert1.der -w0 MIIC/zCCAeegAwIBAgIUV74O+4kXeg21o4vxfRRtyJm...
- Copie o certificado da saída padrão para a prancheta.
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
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ávelcertificate:
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.
-
Substitua o certificado, definido usando a variável
- Salvar e sair do arquivo.
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
- Entre na IDM Web UI como administrador da IdM.
-
Navegue para
Identity
Services
. - 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.