Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Este documento explica como validar uma cadeia de certificados antes de fazer upload do certificado para um keystore ou um truststore no Apigee Edge. O processo depende Kit de ferramentas do OpenSSL (link em inglês) para validar o certificado e é aplicável em qualquer ambiente em que o OpenSSL esteja disponível.
Antes de começar
Antes de usar as etapas deste documento, é preciso entender os seguintes tópicos:
- Se você não conhece a cadeia de certificados, leia Cadeia de confiança.
- Se você não conhece a biblioteca OpenSSL, leia OpenSSL (link em inglês).
- Para usar os exemplos de linha de comando neste guia, instale ou atualize para o versão mais recente do cliente OpenSSL.
- Verifique se os certificados estão no formato PEM. Se os certificados não estiverem no formato PEM, siga as instruções Converter certificados em um formato com suporte para convertê-los no formato PEM
Como validar o assunto e o emissor do certificado para a cadeia completa
Para validar a cadeia de certificados usando comandos OpenSSL, siga as etapas descritas na seções a seguir:
- Como dividir a cadeia de certificados
- Como verificar o assunto e o emissor do certificado
- Como verificar o assunto do certificado e o hash do emissor
- Como verificar a validade do certificado
Como dividir a cadeia de certificados
Antes de validar o certificado, você precisa dividir a cadeia de certificados em partes seguindo estas etapas:
- Faça login no servidor onde está o cliente OpenSSL.
- Divida a cadeia de certificados nos seguintes certificados (caso ainda não tenha feito isso):
-
Certificado da entidade:
entity.pem
-
Certificado intermediário:
intermediate.pem
-
Certificado raiz:
root.pem
A figura abaixo mostra um exemplo de cadeia de certificados:
Como verificar o assunto e o emissor do certificado
Esta seção descreve como saber o assunto e o emissor dos certificados e verificar se você tem uma cadeia de certificados válida.
-
Execute o seguinte comando OpenSSL para receber
Subject
eIssuer
para cada certificado na cadeia deentity
root
e verificar se elas formam uma cadeia de certificados adequada:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
Em que certificate é o nome do certificado.
-
Verifique se os certificados na cadeia aderem às seguintes diretrizes:
-
Subject
de cada certificado corresponde aoIssuer
do certificado anterior na cadeia (exceto o certificadoEntity
). -
Subject
eIssuer
são os mesmos para o certificado raiz.
Se os certificados da cadeia aderirem a essas diretrizes, a cadeia de certificados é considerada completa e válida.
Exemplo de validação da cadeia de certificados
O exemplo a seguir é a saída dos comandos OpenSSL para uma amostra de cadeia de certificados que contém três certificados:
Certificado da entidade
openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):' Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1 Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.com
Certificado intermediário
openssl x509 -text -in intermediate.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1
Certificado raiz
openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
No exemplo acima, observe o seguinte:
-
O
Subject
do certificado intermediário corresponde aoIssuer
do certificado da entidade. -
o
Subject
do certificado raiz corresponde aoIssuer
do o certificado intermediário. -
O
Subject
e oIssuer
são os mesmos no certificado raiz.
No exemplo acima, você pode confirmar que a cadeia de certificados de amostra é válida.
-
Como verificar o assunto do certificado e o hash do emissor
Esta seção explica como obter o hash do assunto e do emissor dos certificados e verificar se você tem uma cadeia de certificados válida.
É sempre uma boa prática verificar a sequência hash dos certificados, pois isso pode ajudar identificar problemas como o nome comum (CN, na sigla em inglês) do certificado com espaço indesejado ou caracteres especiais.
- Execute o seguinte comando OpenSSL para receber a sequência
hash
para cada certificado na cadeia deentity
aroot
e verifique se eles para formar uma cadeia de certificados adequada. - Verifique se os certificados na cadeia aderem às seguintes diretrizes:
-
Subject
de cada certificado corresponde àIssuer
das na cadeia (exceto o certificadoEntity
). -
Subject
eIssuer
são os mesmos para o certificado raiz. -
O
subject hash
do certificado intermediário corresponde aoissuer hash
da entidade certificado. -
O
subject hash
do certificado raiz corresponde aoissuer hash
do certificado do emissor. -
O
subject
e oissuer hash
são os mesmos no certificado raiz.
openssl x509 -hash -issuer_hash -noout -in certificate
Em que certificate é o nome do certificado.
Se os certificados da cadeia aderirem a essas diretrizes, a cadeia de certificados será considerados completos e válidos.
Exemplo de validação da cadeia de certificados com sequência de hash
O exemplo a seguir é a saída dos comandos OpenSSL para uma amostra de cadeia de certificados que contém três certificados:
openssl x509 -in entity.pem -hash -issuer_hash -noout c54c66ba #this is subject hash 99bdd351 #this is issuer hash
openssl x509 -in intermediate.pem -hash -issuer_hash -noout 99bdd351 4a6481c9
openssl x509 -in root.pem -hash -issuer_hash -noout 4a6481c9 4a6481c9
No exemplo acima, observe o seguinte:
No exemplo acima, você pode confirmar que a cadeia de certificados de amostra é válida.
Como verificar a validade do certificado
Nesta seção, explicamos como verificar se todos os certificados na cadeia estão expiraram usando um dos seguintes métodos:
- Consulte as datas de início e término do certificado.
- Confira o status de expiração.
Datas de início e término
Execute o seguinte comando OpenSSL para ver as datas de início e término de cada certificado
na cadeia de entity
a root
e verifique se todos os certificados
da cadeia estão em vigor (a data de início é anterior a hoje) e não expiraram.
Exemplo de validação de validade do certificado com as datas de início e término
openssl x509 -startdate -enddate -noout -in entity.pem notBefore=Feb 6 21:57:21 2020 GMT notAfter=Feb 4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem notBefore=Jun 15 00:00:42 2017 GMT notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem notBefore=Apr 13 10:00:00 2011 GMT notAfter=Apr 13 10:00:00 2022 GMT
Status de vencimento
Execute o seguinte comando OpenSSL para verificar se o certificado já expirou ou
vai expirar em N seconds
. Isso retorna o status de vencimento do
no contexto da data atual do sistema.
openssl x509 -checkend <N Seconds> -noout -in certificate
Em que certificate é o nome do certificado.
Exemplo de validação de validade do certificado com a opção de checkend
O comando a seguir usa 0 seconds
para verificar se o certificado foi lido.
expirou ou não:
openssl x509 -checkend 0 -noout -in entity.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem Certificate will not expire
Neste exemplo, a mensagem Certificate will not expire
indica que
certificado ainda não expirou.