FreeIPA IDM Dicas Sobre Certificados

Obs: Estas dicas se aplicam a versões > 4.1 do FreeIPA e do IDM (RedHat) e somente para sistemas CentOS/RHEL/Fedora >= 7. Pode ser que parte deste documento tambêm se aplique a outras distros, mas isto não foi testado.

Nota: Todas as vezes que a palavra REALM aparecer em letras maiúsculas, em um comando, você deve substituí-la pelo realm configurado no seu sistema.

1-) Como verificar a validade e o status dos certificados?

A maioria dos certificados no IPA são renovados e mantidos, automaticamente, pelo certmonger. Para listar todos os certificados gerenciados:

#getcert list

Esse comando vai retornar uma lista com todos os certificados e seus respectivos status.

Ex.:
Request ID '20181101183417':
status: MONITORING
stuck: no
key pair storage: type=FILE,location='/var/kerberos/krb5kdc/kdc.key'
certificate: type=FILE,location='/var/kerberos/krb5kdc/kdc.crt'
CA: IPA
issuer: CN=Certificate Authority,O=REALM.LDC
subject: CN=sv-ldc-cp04.tjgo.ldc,O=REALM.LDC
expires: 2022-11-22 13:59:04 UTC
principal name: krbtgt/REALM.LDC@REALM.LDC
key usage: digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment
eku: id-kp-serverAuth,id-pkinit-KPKdc
pre-save command:
post-save command: /usr/libexec/ipa/certmonger/renew_kdc_cert
track: yes
auto-renew: yes

status MONITORING – Quer dizer, ele é renovado automaticamente pelo Certmonger.
Stuck no – significa que nao há problema com ele.
Expires: 2022-11-22 13:59:04 UTC – Data de validade
auto-renew: yes – ele é renovado automaticamente.

Se o status estiver diferente de MONITORING, verique na man page do getcert o significado do seu status:

$ man getcert-list

O IPA, na versao >= 4, faz uso de três chaveiros principais que estão, por padrão, nos seguintes diretórios :

/etc/pki/pki-tomcat/alias
/etc/httpd/alias
/etc/dirsrv/slapd-REALM

Para listar os certificados que estão dentro desses chaveiros, utilize:

#certutil -L -d /etc/httpd/alias

O certutil é utilizado para gerenciar esses chaveiros. A opção -L lista o conteúdo e a opçao -d define o caminho do diretório.
O comando acima, retorna uma saida parecida com a seguinte:

Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI

REALM.LDC IPA CA CT,C,C
REALM.LDC IPA CA CT,C,C
Server-Cert u,u,u

Usando o Certificate Nickname é possivel obter dados dos certificados:

#certutil -L -d /etc/httpd/alias -n 'REALM.LDC IPA CA'

Fragmento da saída do comando:

Version: 3 (0x2)
Serial Number: 1610481801 (0x6ffe1135)
Signature Algorithm: PKCS #1 SHA-256 With RSA Encryption
Issuer: "CN=Certificate Authority,O=REALM.LDC"
Validity:
Not Before: Sat Oct 31 13:59:14 2020
Not After : Wed Oct 31 13:59:14 2040
Subject: "CN=Certificate Authority,O=REALM.LDC"
Subject Public Key Info:
Public Key Algorithm: PKCS #1 RSA Encryption
RSA Public Key:
Modulus:


Esse fragmento é do certificado da CA. Com data de vencimento em 2040.

2-) Como renovar os certificados?

Se o certificado estiver na base de dados do certmonger (listar com o getcert), para renová-lo basta utillizar:

# ipa-getcert resubmit -i REQUEST_ID
Mais informaçoes em: 
https://www.freeipa.org/page/Certmonger

Se o certificado for o da CA, o procedimento é mais longo. Primeiro solicite a renovacao automatica:

# ipa-cacert-manage renew --self-signed -v

A opçao –self-signed deve ser utilizada caso a CA seja interna. Nos casos de CAs externas o procedimento é diferente e esta fora do escopo deste documento.

Depois de renovar o certificado, ele normalmente estara disponível em um dos três chaveiros citados no item 1. Por isso é necessária a opção -v no comando ipa-cacert-manage, para saber em qual chaveiro o certificado foi renovado. Com essa informação, é necessário extrair uma cópia do certificado do chaveiro e inseri-lo nos demais chaveiros e no arquivo /etc/ipa/ca.crt.

Atenção: Deve-se ficar atendo para os nicknames dos certificados e não modifica-los no procedimento. Antes de substituir os certificados, tenha certeza dos nomes usando os comandos descritos no item 1.

Primeiro vamos extrair (assumindo que o certificado foi renovado no /etc/pki/pki-tomcat/alias) :

# certutil -L -d /etc/pki/pki-tomcat/alias -n 'caSigningCert cert-pki-ca' -t CT,C,C -a -o CA.pem

Com isso criamos uma cópia do certificado em um arquivo chamado CA.pem no diretório corrente.
Agora já podemos inserir o certificado renovado nos outros chaveiros:

# certutil -A -d /etc/dirsrv/slapd-REALM-LDC -n 'REALM IPA CA' -t CT,C,C -f /etc/dirsrv/slapd-REALM-LDC/pwdfile.txt -a -i CA.pem

Inserido (opçao -A ) o arquivo CA.pem (opçao -i ), no chaveiro /etc/dirsrv/slapd-REALM-LDC (opçao -d) com o nickname ‘REALM IPA CA’ (opçao -n) com permissoes CT,C,C (opçao -t) usando a chave /etc/dirsrv/slapd-REALM-LDC/pwdfile.txt (opçao -f ).

Mesmo procedimento, chaveiro diferente:

# certutil -A -d /etc/httpd/alias -n 'REALM IPA CA' -t CT,C,C -f /etc/httpd/alias/pwdfile.txt -a -i CA.pem

E agora , substituir o arquivo /etc/ipa/ca.crt:

# cp CA.pem /etc/ipa/ca.crt

Para verificar se os chaveiros foram devidamente modificados, é só usar os comandos referenciados no item 1.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s