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.
Uso de chave recomendado e usos estendidos de chave para certificados usados no Apigee Edge
| 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 |
|
Autenticação do servidor da Web TLS |
| Certificado de entidade de cliente usado no truststore do host virtual do Apigee Edge |
|
Autenticação do cliente da Web TLS |
| Certificado de entidade de servidor usado no truststore do servidor de destino do Apigee Edge |
|
Autenticação do servidor da Web TLS |
| Certificado de entidade de cliente usado no keystore do servidor de destino do Apigee Edge |
|
Autenticação do cliente da Web TLS |
| Certificados intermediários e raiz |
|
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.
- Faça login no servidor em que o OpenSSL existe.
-
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 -
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 -
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