Red Hat Training

A Red Hat training course is available for RHEL 8

50.11. Solicitar un nuevo certificado de usuario y exportarlo al cliente

Como administrador de Identity Management (IdM), puede configurar un servidor web que se ejecuta en un cliente IdM para solicitar a los usuarios que utilizan navegadores web para acceder al servidor que se autentiquen con certificados emitidos por una sub-CA IdM específica. Complete esta sección para solicitar un certificado de usuario a una sub-CA de IdM específica y para exportar el certificado y la clave privada correspondiente al host desde el que el usuario quiere acceder al servidor web utilizando un navegador web. A continuación, importe el certificado y la clave privada en el navegador.

Procedimiento

  1. Opcionalmente, cree un nuevo directorio, por ejemplo ~/certdb/, y conviértalo en una base de datos de certificados temporal. Cuando se le pida, cree una contraseña de la base de datos de certificados NSS para cifrar las claves del certificado que se generará en un paso 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. Cree la solicitud de firma de certificado (CSR) y redirija la salida a un archivo. Por ejemplo, para crear una CSR con el nombre certificate_request.csr para un certificado de bits 4096 para el usuario idm_user en el ámbito IDM.EXAMPLE.COM, estableciendo el apodo de las claves privadas del certificado como idm_user para facilitar su localización, y estableciendo el asunto como 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. Cuando se le solicite, introduzca la misma contraseña que introdujo cuando utilizó certutil para crear la base de datos temporal. A continuación, siga escribiendo randlomly hasta que se le indique que se detenga:

    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. Envíe el archivo de solicitud de certificado al servidor. Especifique la entidad de seguridad de Kerberos que se asociará con el certificado recién emitido, el archivo de salida para almacenar el certificado y, opcionalmente, el perfil del certificado. Especifique la sub-CA de IdM que desea emitir el certificado. Por ejemplo, para obtener un certificado del perfil IECUserRoles, un perfil con extensión de roles de usuario añadidos, para la entidad de crédito idm_user@IDM.EXAMPLE.COM desde webclient-ca, y guardar el certificado en el archivo ~/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. Añade el certificado a la base de datos del NSS. Utilice la opción -n para establecer el mismo apodo que utilizó al crear la CSR anteriormente para que el certificado coincida con la clave privada en la base de datos del NSS. La opción -t establece el nivel de confianza. Para más detalles, consulte la página man de certutil(1). La opción -i especifica el archivo de certificado de entrada. Por ejemplo, para añadir a la base de datos del NSS un certificado con el apodo idm_user que está almacenado en el archivo ~/idm_user.pem en la base de datos ~/certdb/:

    # certutil -A -d ~/certdb/ -n idm_user -t \ "P,," -i ~/idm_user.pem
  6. Verifique que la clave en la base de datos NSS no muestra (orphan) como su apodo. Por ejemplo, para verificar que el certificado almacenado en la base de datos ~/certdb/ no está huérfano:

    # certutil -K -d ~/certdb/
    < 0> rsa      5ad14d41463b87a095b1896cf0068ccc467df395   NSS Certificate DB:idm_user
  7. Utilice el comando pk12util para exportar el certificado de la base de datos NSS al formato PKCS12. Por ejemplo, para exportar el certificado con el apodo idm_user de la base de datos NSS /root/certdb al archivo ~/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. Transfiera el certificado al host en el que desea que se habilite la autenticación de certificados para idm_user:

    # scp ~/idm_user.p12 idm_user@client.idm.example.com:/home/idm_user/
  9. En el host al que se ha transferido el certificado, haga que el directorio en el que se almacena el archivo .pkcs12 sea inaccesible para el grupo "otros" por razones de seguridad:

    # chmod o-rwx /home/idm_user/
  10. Por razones de seguridad, elimine la base de datos NSS temporal y el archivo .pkcs12 del servidor:

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