Validando certificado

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Neste documento, explicamos como validar a finalidade de um certificado antes de fazer o upload dele para um keystore ou truststore. O processo depende do OpenSSL para validação e é aplicável a qualquer ambiente em que o OpenSSL esteja disponível.

Os certificados TLS geralmente são emitidos com uma ou mais finalidades para as quais podem ser usados. Normalmente, isso é feito para restringir o número de operações para as quais uma chave pública contida no certificado pode ser usada. A finalidade do certificado está disponível nas seguintes extensões de certificado:

  • Uso da chave
  • Uso estendido de chave

Uso da chave

A extensão de uso da chave define a finalidade (por exemplo, encriptação, assinatura ou assinatura de certificado) da chave contida no certificado. Se a chave pública for usada para autenticação de entidade, a extensão do certificado deverá ter o uso da chave Assinatura digital.

As diferentes extensões de uso de chave disponíveis para um certificado TLS criado usando o processo da autoridade de certificação (AC) são as seguintes:

  • Assinatura digital
  • Não repúdio
  • Encriptação de chaves
  • Encriptação de dados
  • Acordo de chave
  • Assinatura de certificado
  • Assinatura CRL
  • Somente encriptação
  • Somente decriptação

Para mais informações sobre essas extensões de uso de chave, consulte RFC5280, Uso de chave.

Uso estendido de chave

Essa extensão indica uma ou mais finalidades para as quais a chave pública certificada pode ser usada, além ou no lugar das finalidades básicas indicadas na extensão de uso da chave. Em geral, essa extensão aparece apenas em certificados de entidade final.

Algumas extensões comuns de uso estendido de chave são as seguintes:

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

Uma chave estendida pode ser crítica ou não crítica.

  • Se a extensão for crítica, o certificado só poderá ser usado para a finalidade ou finalidades indicadas. Se o certificado for usado para outra finalidade, ele estará em violação de a política da AC.
  • Se a extensão for não crítica, ela indicará que a finalidade ou finalidades pretendidas de a chave são informativas e não implicam que a AC restrinja o uso da chave à finalidade indicada. No entanto, os aplicativos que usam certificados podem exigir que uma finalidade específica seja indicada para que o certificado seja aceitável.

Se um certificado contiver o campo de uso de chave e o campo de uso estendido de chave como críticos, os dois campos precisarão ser processados de forma independente, e o certificado só poderá ser usado para uma finalidade que satisfaça ambos os valores de uso de chave. No entanto, se não houver uma finalidade que possa satisfazer os dois valores de uso de chave, o certificado não poderá ser usado para nenhuma finalidade.

Ao adquirir um certificado, verifique se ele tem o uso de chave adequado definido para atender aos requisitos de certificados de cliente ou servidor, sem os quais o handshake de TLS falharia.

Purpose Uso da chave

(obrigatório)

Uso estendido de chave

(opcional)

Certificado de entidade de servidor usado no keystore do host virtual do Apigee Edge
  • Assinatura digital
  • Encriptação de chaves ou acordo de chaves
Autenticação do servidor da Web TLS
Certificado de entidade de cliente usado no truststore do host virtual do Apigee Edge
  • Assinatura digital ou acordo de chave
Autenticação do cliente da Web TLS
Certificado de entidade de servidor usado no truststore do servidor de destino do Apigee Edge
  • Assinatura digital
  • Encriptação de chaves ou acordo de chaves
Autenticação do servidor da Web TLS
Certificado de entidade de cliente usado no keystore do servidor de destino do Apigee Edge
  • Assinatura digital ou acordo de chave
Autenticação do cliente da Web TLS
Certificados intermediários e raiz
  • Assinatura de certificado
  • Assinatura da lista de revogação de certificados (CRL)

Antes de começar

Antes de usar as etapas neste documento, confira se você entende os seguintes tópicos:

  • Se você não estiver familiarizado com uma cadeia de certificados, leia Cadeia de confiança.
  • Se você não estiver familiarizado com a biblioteca OpenSSL, leia OpenSSL
  • Se você quiser saber mais sobre extensões de uso de chave e uso estendido de chave, leia RFC5280.
  • Se você quiser usar os exemplos de linha de comando neste guia, instale ou atualize para a versão mais recente do cliente OpenSSL
  • Verifique se os certificados estão no formato PEM e, se não estiverem, converta os certificados para o formato PEM.

Validar a finalidade do certificado

Esta seção descreve as etapas usadas para validar a finalidade do certificado.

  1. Faça login no servidor em que o OpenSSL existe.
  2. Para receber o uso de chave de um certificado, execute este comando OpenSSL:
    openssl x509 -noout -ext keyUsage < certificate

    Em que certificate é o nome do certificado.

    Exemplo de saída

    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. Se um uso de chave for obrigatório, ele será definido como crítico da seguinte maneira:
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  4. Execute este comando para receber o uso estendido de chave de um certificado. Se o uso estendido de chave não for definido como crítico, ele será uma recomendação e não um mandato.
    openssl x509 -noout -ext extendedKeyUsage < certificate

    Em que certificate é o nome do certificado.

    Exemplo de saída

    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