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
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_identity
do 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
O usuário adiciona dois arquivos como os valores do parâmetro
X509_user_identity
do 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
Comandos de certificados úteis
Para visualizar os dados do certificado, tais como o sujeito e o emissor:
$ openssl x509 -noout -text -in ca.pem
Para comparar em que linhas dois certificados diferem:
$ 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