Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 40. Conversión de los formatos de los certificados para que funcionen con IdM

Esta historia de usuario describe cómo asegurarse de que usted, como administrador del sistema IdM, está utilizando el formato correcto de un certificado con comandos IdM específicos. Esto es útil, por ejemplo, en las siguientes situaciones:

40.1. Formatos y codificaciones de los certificados en IdM

La autenticación de certificados, incluida la autenticación con tarjeta inteligente en IdM, se realiza comparando el certificado que presenta el usuario con el certificado, o los datos del certificado, que están almacenados en el perfil IdM del usuario.

Configuración del sistema

Lo que se almacena en el perfil IdM es sólo el certificado, no la clave privada correspondiente. Durante la autenticación, el usuario también debe demostrar que está en posesión de la clave privada correspondiente. El usuario lo hace presentando un archivo PKCS #12 que contenga tanto el certificado como la clave privada o presentando dos archivos: uno que contenga el certificado y otro que contenga la clave privada.

Por lo tanto, procesos como la carga de un certificado en un perfil de usuario sólo aceptan archivos de certificado que no contengan la clave privada.

Del mismo modo, cuando un administrador de sistemas le proporcione un certificado de CA externa, sólo le facilitará los datos públicos: el certificado sin la clave privada. La utilidad ipa-advise para configurar el servidor IdM o el cliente IdM para la autenticación con tarjeta inteligente espera que el archivo de entrada contenga el certificado de la CA externa pero no la clave privada.

Codificaciones de los certificados

Hay dos codificaciones de certificados comunes: El correo electrónico con privacidad (PEM) y las reglas de codificación distinguidas (DER). El formato base64 es casi idéntico al formato PEM pero no contiene la cabecera y el pie de página -----BEGIN CERTIFICATE-----/-----END CERTIFICATE-----.

Un certificado codificado con DER es un archivo binario de certificado digital X509. Como archivo binario, el certificado no es legible para las personas. Los archivos DER utilizan a veces la extensión de nombre de archivo .der, pero los archivos con las extensiones de nombre de archivo .crt y .cer también contienen a veces certificados DER. Los archivos DER que contienen claves pueden llamarse .key.

Un certificado que ha sido codificado utilizando PEM Base64 es un archivo legible para el ser humano. El archivo contiene datos blindados ASCII (Base64) precedidos de una línea "-----BEGIN ...". Los archivos PEM utilizan a veces la extensión de nombre de archivo .pem, pero los archivos con las extensiones de nombre de archivo .crt y .cer también contienen a veces certificados PEM. Los archivos PEM que contienen claves pueden denominarse .key.

Los diferentes comandos de ipa tienen diferentes limitaciones en cuanto a los tipos de certificados que aceptan. Por ejemplo, el comando ipa user-add-cert sólo acepta certificados codificados en el formato base64, pero ipa-server-certinstall acepta los certificados PEM, DER, PKCS #7, PKCS #8 y PKCS #12.

Tabla 40.1. Codificaciones de los certificados

Formato de codificaciónLectura humanaExtensiones comunes de nombres de archivosEjemplos de comandos IdM que aceptan el formato de codificación

PEM/base64

.pem, .crt, .cer

ipa user-add-cert, ipa-server-certinstall, ..

DER

No

.der, .crt, .cer

ipa-server-certinstall, ..

Sección 40.4, “Comandos y formatos relacionados con los certificados en IdM” enumera otros comandos de ipa con los formatos de certificado que aceptan los comandos.

Autenticación de usuarios

Al utilizar la interfaz web para acceder a IdM, el usuario demuestra que está en posesión de la clave privada correspondiente al certificado al tener ambos almacenados en la base de datos del navegador.

Al utilizar la CLI para acceder a IdM, el usuario demuestra que está en posesión de la clave privada correspondiente al certificado mediante uno de los siguientes métodos:

  • El usuario añade, como valor del parámetro X509_user_identity del comando kinit -X, la ruta de acceso al módulo de tarjeta inteligente que está conectado a la tarjeta inteligente que contiene tanto el certificado como la clave:

    $ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_user
  • El usuario añade dos archivos como valores del parámetro X509_user_identity del comando kinit -X, uno que contiene el certificado y el otro la clave privada:

    $ kinit -X X509_user_identity='FILE:`/path/to/cert.pem,/path/to/cert.key`' idm_user

Comandos de certificado útiles

Para ver los datos del certificado, como el asunto y el emisor:

$ openssl x509 -noout -text -in ca.pem

Para comparar en qué líneas se diferencian dos certificados:

$ diff cert1.crt cert2.crt

Para comparar en qué líneas difieren dos certificados con la salida mostrada en dos columnas:

$ diff cert1.crt cert2.crt -y