Validando el propósito del certificado

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

En este documento, se explica cómo validar el propósito de un certificado antes de subirlo a un almacén de claves o un almacén de confianza. El proceso se basa en OpenSSL para la validación y es aplicable a cualquier entorno en el que OpenSSL esté disponible.

Por lo general, los certificados TLS se emiten con uno o más fines para usarlos. Por lo general, esto se hace para restringir el número de operaciones para las que se puede usar una clave pública contenida en el certificado. El propósito del certificado está disponible en las siguientes extensiones de certificado:

  • Uso de claves
  • Uso extendido de la clave

Uso de claves

La extensión de uso de la clave define el propósito (por ejemplo, el cifrado, la firma o la firma del certificado) de la clave que se incluye en el certificado. Si se usa la clave pública para la autenticación de entidades, la extensión del certificado debería tener el uso de clave Firma digital.

Las diferentes extensiones de uso de claves disponibles para un certificado TLS creado mediante el proceso de la autoridad certificadora (CA) son las siguientes:

  • Firma digital
  • No rechazo
  • Cifrado de claves
  • Cifrado de datos
  • Acuerdo de claves
  • Firma de certificados
  • Firma de CRL
  • Solo para cifrado
  • Solo para descifrar

Para obtener más información sobre estas extensiones de uso de claves, consulta RFC5280, Uso de claves.

Uso extendido de la clave

Esta extensión indica uno o más fines para los que se puede usar la clave pública certificada, además de los fines básicos indicados en la extensión de uso de claves, o bien en lugar de ellos. En general, esta extensión aparecerá solo en los certificados de entidades finales.

Estas son algunas extensiones comunes de uso extendido de la clave:

  • TLS Web server authentication
  • TLS Web client authentication
  • anyExtendedKeyUsage

Una clave extendida puede ser crítica o no crítica.

  • Si la extensión es crítica, el certificado se debe usar solo para los fines indicados. Si el certificado se usa para otro propósito, incumple la política de la AC.
  • Si la extensión es no crítica, indica que el propósito o los propósitos previstos de la clave es informativo y no implica que la AC restrinja el uso de la clave al propósito indicado. Sin embargo, es posible que las aplicaciones que usan certificados requieran que se indique un propósito en particular para que el certificado sea aceptable.

Si un certificado contiene los campos de uso de claves y de uso de claves extendidos como críticos, ambos campos deben procesarse de forma independiente, y el certificado se puede usar solo para un propósito que cumpla con ambos valores de uso de clave. Sin embargo, si no existe un propósito que pueda satisfacer ambos valores de uso de la clave, el certificado no se debe usar para ningún fin.

Cuando adquieras un certificado, asegúrate de que tenga el uso de clave adecuado definido para cumplir con los requisitos de certificados de cliente o servidor, sin los cuales fallaría el protocolo de enlace TLS.

Purpose Uso de la clave

(obligatorio)

Uso extendido de la clave

(optional)

Certificado de entidad del servidor que se usa en el almacén de claves de host virtual de Apigee Edge
  • Firma digital
  • Cifrado de clave o acuerdo de claves
Autenticación del servidor web TLS
Certificado de entidad de cliente que se usa en el almacén de confianza del host virtual de Apigee Edge
  • Firma digital o acuerdo de claves
Autenticación de cliente web TLS
Certificado de entidad del servidor que se usa en el almacén de confianza del servidor de destino de Apigee Edge
  • Firma digital
  • Cifrado de clave o acuerdo de claves
Autenticación del servidor web TLS
Certificado de entidad de cliente que se usa en el almacén de claves del servidor de destino de Apigee Edge
  • Firma digital o acuerdo de claves
Autenticación de cliente web TLS
Certificados intermedios y raíz
  • Firma de certificado
  • Firma de la lista de revocación de certificados (CRL)

Antes de comenzar

Antes de seguir los pasos de este documento, asegúrate de comprender los siguientes temas:

  • Si no estás familiarizado con una cadena de certificados, consulta Cadena de confianza.
  • Si no conoces la biblioteca de OpenSSL, consulta OpenSSL.
  • Si quieres obtener más información sobre las extensiones de uso de claves y el uso extendido de claves, consulta RFC5280.
  • Si deseas usar los ejemplos de la línea de comandos de esta guía, instala la versión más reciente del cliente OpenSSL o actualízalo a la versión más reciente.
  • Asegúrate de que los certificados estén en formato PEM y, de lo contrario, conviértelos en formato PEM.

Valida el propósito del certificado

En esta sección, se describen los pasos usados para validar el propósito del certificado.

  1. Accede al servidor en el que existe OpenSSL.
  2. Para obtener el uso de clave de un certificado, ejecuta el siguiente comando de OpenSSL:
    openssl x509 -noout -ext keyUsage < certificate
    

    En el ejemplo anterior, certificate es el nombre del certificado.

    Resultado de muestra

    openssl x509 -noout -ext keyUsage < entity.pem
    X509v3 Key Usage: critical
        Digital Signature, Key Encipherment
    
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
    
  3. Si el uso de una clave es obligatorio, se definirá como fundamental de la siguiente manera:
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
    
  4. Ejecuta el siguiente comando para obtener el uso extendido de la clave de un certificado. Si el uso extendido de la clave no se define como crítico, es una recomendación y no un mandato.
    openssl x509 -noout -ext extendedKeyUsage < certificate
    

    En el ejemplo anterior, certificate es el nombre del certificado.

    Resultado de muestra

    openssl x509 -noout -ext extendedKeyUsage < entity.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication
    
    openssl x509 -noout -ext extendedKeyUsage < intermediate.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication