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
SubjecteIssuerpara cada certificado na cadeia deentityroote 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:
-
Subjectde cada certificado corresponde aoIssuerdo certificado anterior na cadeia (exceto o certificadoEntity). -
SubjecteIssuersã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.comCertificado 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 1O1Certificado 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 = GlobalSignNo exemplo acima, observe o seguinte:
-
O
Subjectdo certificado intermediário corresponde aoIssuerdo certificado da entidade. -
o
Subjectdo certificado raiz corresponde aoIssuerdo o certificado intermediário. -
O
Subjecte oIssuersã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
hashpara cada certificado na cadeia deentityaroote verifique se eles para formar uma cadeia de certificados adequada. - Verifique se os certificados na cadeia aderem às seguintes diretrizes:
-
Subjectde cada certificado corresponde àIssuerdas na cadeia (exceto o certificadoEntity). -
SubjecteIssuersão os mesmos para o certificado raiz. -
O
subject hashdo certificado intermediário corresponde aoissuer hashda entidade certificado. -
O
subject hashdo certificado raiz corresponde aoissuer hashdo certificado do emissor. -
O
subjecte oissuer hashsã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.