Capítulo 40. Conversão de formatos de certificados para trabalhar com IdM
Esta história de usuário descreve como garantir que você como administrador do sistema IdM esteja usando o formato correto de um certificado com comandos específicos de IdM. Isto é útil, por exemplo, nas seguintes situações:
- Você está carregando um certificado externo em um perfil de usuário. Para maiores detalhes, veja Seção 40.2, “Conversão de um certificado externo para carregar em uma conta de usuário IdM”.
- Você está usando um certificado CA externo ao configurar o servidor IdM para autenticação de Cartão Smart Card ou ao configurar o cliente IdM para autenticação de Cartão Smart Card para que os usuários possam autenticar no IdM usando Cartões Smart Card com certificados que foram emitidos pela autoridade de certificado externa.
- Você está exportando um certificado de um banco de dados NSS para um formato pkcs #12 que inclui tanto o certificado quanto a chave privada. Para maiores detalhes, veja Seção 40.3.1, “Exportação de um certificado e chave privada de um banco de dados NSS para um arquivo PKCS #12”.
40.1. Formatos e codificações de certificados na IdM Copiar o linkLink copiado para a área de transferência!
A autenticação do certificado incluindo a autenticação do cartão inteligente no IdM prossegue comparando o certificado que o usuário apresenta com o certificado, ou dados do certificado, que são armazenados no perfil de IdM do usuário.
Configuração do sistema
O que está armazenado no perfil do IdM é apenas o certificado, não a chave privada correspondente. Durante a autenticação, o usuário também deve mostrar que está de posse da chave privada correspondente. O usuário faz isso apresentando um arquivo PKCS #12 que contém tanto o certificado como a chave privada ou apresentando dois arquivos: um que contém o certificado e o outro que contém a chave privada.
Portanto, processos como carregar um certificado em um perfil de usuário só aceitam arquivos de certificado que não contenham a chave privada.
Da mesma forma, quando um administrador de sistema lhe fornece um certificado CA externo, ele fornecerá apenas os dados públicos: o certificado sem a chave privada. O utilitário ipa-advise para configurar o servidor IdM ou o cliente IdM para autenticação de cartão inteligente espera que o arquivo de entrada contenha o certificado da CA externa, mas não a chave privada.
Codificações de certificados
Há duas codificações comuns de certificados: Correio Eletrônico Privativo (PEM) e Regras de Codificação Distintas (DER). O formato base64 é quase idêntico ao formato PEM, mas não contém o cabeçalho e rodapé -----BEGIN CERTIFICATE-----/-----END CERTIFICATE-----.
Um certificado que foi codificado usando DER é um arquivo de certificado digital binário X509. Como um arquivo binário, o certificado não é legível por humanos. DER arquivos às vezes usam a extensão .der, mas arquivos com as extensões .crt e .cer também às vezes contêm certificados DER. DER arquivos contendo chaves podem ser nomeados .key.
Um certificado que foi codificado usando PEM Base64 é um arquivo legível por humanos. O arquivo contém dados blindados ASCII (Base64) prefixados com uma linha " .key BEGIN ...". PEM arquivos às vezes usam a extensão de nome de arquivo .pem, mas arquivos com as extensões de nome de arquivo .crt e .cer às vezes também contêm certificados PEM. PEM arquivos contendo chaves podem ser nomeados ----- .
Diferentes comandos ipa têm diferentes limitações em relação aos tipos de certificados que aceitam. Por exemplo, o comando ipa user-add-cert só aceita certificados codificados no formato base64, mas ipa-server-certinstall aceita PEM, DER, PKCS #7, PKCS #8 e PKCS #12 certificados.
| Formato de codificação | Legível para humanos | Extensões de nomes de arquivos comuns | Exemplo de comandos IdM aceitando o formato de codificação |
|---|---|---|---|
| PEM/base64 | Sim | .pem, .crt, .cer | ipa user-add-cert, ipa-server-certinstall, .. |
| DER | Não | .der, .crt, .cer | ipa-server-certinstall, .. |
Seção 40.4, “Comandos e formatos relacionados a certificados no IdM” lista ainda ipa comandos com os formatos de certificado que os comandos aceitam.
Autenticação do usuário
Ao utilizar a interface web para acessar o IdM, o usuário prova que está de posse da chave privada correspondente ao certificado, tendo ambas armazenadas no banco de dados do navegador.
Ao utilizar o CLI para acessar o IdM, o usuário prova que está de posse da chave privada correspondente ao certificado por um dos seguintes métodos:
O usuário acrescenta, como valor do parâmetro
X509_user_identitydo comandokinit -X, o caminho para o módulo smart card que está conectado ao smart card que contém tanto o certificado quanto a chave:kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_user
$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_userCopy to Clipboard Copied! Toggle word wrap Toggle overflow O usuário adiciona dois arquivos como os valores do parâmetro
X509_user_identitydo comandokinit -X, um contendo o certificado e o outro a chave privada:kinit -X X509_user_identity='FILE:`/path/to/cert.pem,/path/to/cert.key`' idm_user
$ kinit -X X509_user_identity='FILE:`/path/to/cert.pem,/path/to/cert.key`' idm_userCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Comandos de certificados úteis
Para visualizar os dados do certificado, tais como o sujeito e o emissor:
openssl x509 -noout -text -in ca.pem
$ openssl x509 -noout -text -in ca.pem
Para comparar em que linhas dois certificados diferem:
diff cert1.crt cert2.crt
$ diff cert1.crt cert2.crt
Para comparar em quais linhas dois certificados diferem com a saída exibida em duas colunas:
diff cert1.crt cert2.crt -y
$ diff cert1.crt cert2.crt -y