Red Hat Training

A Red Hat training course is available for RHEL 8

50.11. Solicitar um novo certificado de usuário e exportá-lo para o cliente

Como administrador de Gerenciamento de Identidade (IdM), você pode configurar um servidor web rodando em um cliente IdM para solicitar aos usuários que usam navegadores web para acessar o servidor para autenticar com certificados emitidos por uma sub-CA específica da IdM. Complete esta seção para solicitar um certificado de usuário de uma sub-CA específica de IdM e para exportar o certificado e a chave privada correspondente para o host a partir do qual o usuário deseja acessar o servidor web usando um navegador web. Em seguida, importe o certificado e a chave privada para o navegador.

Procedimento

  1. Opcionalmente, criar um novo diretório, por exemplo ~/certdb/, e torná-lo um banco de dados temporário de certificados. Quando solicitado, crie uma senha NSS Certificate DB para criptografar as chaves do certificado a ser gerado em uma etapa posterior:

    # mkdir ~/certdb/
    # certutil -N -d ~/certdb/
    Enter a password which will be used to encrypt your keys.
    The password should be at least 8 characters long,
    and should contain at least one non-alphabetic character.
    
    Enter new password:
    Re-enter password:
  2. Criar o pedido de assinatura de certificado (CSR) e redirecionar a saída para um arquivo. Por exemplo, para criar um CSR com o nome certificate_request.csr para um certificado de bit 4096 para o usuário idm_user no reino IDM.EXAMPLE.COM, definindo o apelido das chaves privadas do certificado para idm_user para facilitar a busca, e definindo o assunto para CN=idm_user,O=IDM.EXAMPLE.COM:

    # certutil -R -d ~/certdb/ -a -g 4096 -n idm_user -s "CN=idm_user,O=IDM.EXAMPLE.COM" > certificate_request.csr
  3. Quando solicitado, digite a mesma senha que você digitou ao utilizar certutil para criar o banco de dados temporário. Em seguida, continue digitando randlomly até que lhe seja dito para parar:

    Enter Password or Pin for "NSS Certificate DB":
    
    A random seed must be generated that will be used in the
    creation of your key.  One of the easiest ways to create a
    random seed is to use the timing of keystrokes on a keyboard.
    
    To begin, type keys on the keyboard until this progress meter
    is full.  DO NOT USE THE AUTOREPEAT FUNCTION ON YOUR KEYBOARD!
    
    
    Continue typing until the progress meter is full:
  4. Submeta o arquivo de pedido de certificado ao servidor. Especificar o Kerberos principal para associar com o certificado recém-emitido, o arquivo de saída para armazenar o certificado e, opcionalmente, o perfil do certificado. Especifique a sub-CA do IdM que você deseja emitir o certificado. Por exemplo, para obter um certificado do perfil IECUserRoles, um perfil com extensão de funções de usuário adicional, para o idm_user@IDM.EXAMPLE.COM principal de webclient-ca, e salvar o certificado no arquivo ~/idm_user.pem:

    # ipa cert-request certificate_request.csr --principal=idm_user@IDM.EXAMPLE.COM --profile-id=IECUserRoles --ca=webclient-ca --certificate-out=~/idm_user.pem
  5. Adicionar o certificado ao banco de dados do NSS. Use a opção -n para definir o mesmo apelido que você usou ao criar o CSR anteriormente, para que o certificado corresponda à chave privada no banco de dados do NSS. A opção -t define o nível de confiança. Para detalhes, consulte a página de manual certutil(1). A opção -i especifica o arquivo do certificado de entrada. Por exemplo, para adicionar ao banco de dados do NSS um certificado com o apelido idm_user que é armazenado no arquivo ~/idm_user.pem no banco de dados ~/certdb/:

    # certutil -A -d ~/certdb/ -n idm_user -t "P,,\i ~/idm_user.pem
  6. Verifique se a chave no banco de dados do NSS não mostra (orphan) como seu apelido. Por exemplo, para verificar se o certificado armazenado no banco de dados ~/certdb/ não é órfão:

    # certutil -K -d ~/certdb/
    < 0> rsa      5ad14d41463b87a095b1896cf0068ccc467df395   NSS Certificate DB:idm_user
  7. Use o comando pk12util para exportar o certificado do banco de dados NSS para o formato PKCS12. Por exemplo, para exportar o certificado com o nickname idm_user do banco de dados /root/certdb NSS para o arquivo ~/idm_user.p12:

    # pk12util -d ~/certdb -o ~/idm_user.p12 -n idm_user
    Enter Password or Pin for "NSS Certificate DB":
    Enter password for PKCS12 file:
    Re-enter password:
    pk12util: PKCS12 EXPORT SUCCESSFUL
  8. Transfira o certificado para o host no qual você deseja que a autenticação do certificado para idm_user seja habilitada:

    # scp ~/idm_user.p12 idm_user@client.idm.example.com:/home/idm_user/
  9. No host para o qual o certificado foi transferido, tornar o diretório no qual o arquivo .pkcs12 é armazenado inacessível ao grupo 'outro' por razões de segurança:

    # chmod o-rwx /home/idm_user/
  10. Por razões de segurança, remova o banco de dados temporário do NSS e o arquivo .pkcs12 do servidor:

    # rm ~/certdb/
    # rm ~/idm_user.p12