Validando certificado

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

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

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

  • Uso da chave
  • Uso de chave estendido

Uso da chave

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

As diferentes extensões de uso de chaves disponíveis para um certificado TLS criado usando o processo de autoridade de certificação (CA) 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 chaves, consulte RFC5280, Uso de chaves (link em inglês).

Uso de chave estendido

Esta extensão indica uma ou mais finalidades em que a chave pública certificada pode ser usada, além das finalidades básicas indicadas na extensão de uso da chave. Em geral, essa extensão só aparece em certificados de entidade final.

Estas são algumas extensões comuns de uso de chave estendida:

  • 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 precisará ser usado apenas para os fins indicados. Se o certificado for usado para outro propósito, ele violará a política da CA.
  • Se a extensão for não essencial, isso indica que a finalidade ou os propósitos pretendidos da chave são informativos, e não que a CA restringe 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 tiver os campos de uso de chave e de uso estendido de chave como fundamentais, ambos os campos precisarão ser processados de forma independente, e o certificado só poderá ser usado para uma finalidade que satisfaça os dois valores de uso de chaves. No entanto, se não houver uma finalidade que atenda aos dois valores de uso de chaves, esse certificado não poderá ser usado para nenhuma finalidade.

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

Purpose Uso da chave

(obrigatório)

Uso estendido de chave

(optional)

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

Antes de começar

Antes de seguir as etapas deste documento, é importante entender os seguintes tópicos:

  • Se você não conhece uma cadeia de certificados, leia Cadeia de confiança.
  • Se você não conhece a biblioteca OpenSSL, leia OpenSSL (link em inglês).
  • Para saber mais sobre as extensões de uso de chaves e o uso estendido de chaves, consulte RFC5280 (link em inglês).
  • Para usar os exemplos de linha de comando deste guia, instale ou atualize para a versão mais recente do cliente OpenSSL (link em inglês).
  • Verifique se os certificados estão no formato PEM. Caso contrário, converta-os para o formato PEM.

Validar a finalidade do certificado

Nesta seção, descrevemos as etapas usadas para validar a finalidade do certificado.

  1. Faça login no servidor em que o OpenSSL existe.
  2. Para conferir o uso da chave de um certificado, execute o seguinte 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 o comando a seguir para conferir o uso de chave estendido de um certificado. Se o uso estendido da chave não for definido como crítico, é uma recomendação e não uma exigência.
    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