Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. informações
Neste documento, explicamos como validar uma cadeia de certificados antes de fazer upload do certificado para um keystore ou um truststore no Apigee Edge. O processo depende do kit de ferramentas OpenSSL para validar a cadeia de certificados e é aplicável em qualquer ambiente em que o OpenSSL esteja disponível.
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.
- Para 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. Se os certificados não estiverem no formato PEM, use as instruções em Como converter certificados em formato compatível para convertê-los em PEM.
Como validar o assunto e o emissor do certificado para toda a cadeia
Para validar a cadeia de certificados usando comandos OpenSSL, conclua as etapas descritas nas 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 certificados separados seguindo estas etapas:
- Faça login no servidor em que o cliente OpenSSL existe.
- Divida a cadeia de certificados nos seguintes certificados (se ainda não tiver feito isso):
-
Certificado da entidade:
entity.pem
-
Certificado intermediário:
intermediate.pem
-
Certificado raiz:
root.pem
A figura a seguir mostra um exemplo de cadeia de certificados:
Como verificar o assunto e o emissor do certificado
Nesta seção, descrevemos como conseguir 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 o
Subject
e oIssuer
de cada certificado na cadeia deentity
aroot
e verifique se eles 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 oEntity
). -
Subject
eIssuer
são as mesmas para o certificado raiz.
Se os certificados da cadeia aderirem a essas diretrizes, a cadeia de certificados será considerada completa e válida.
Exemplo de validação da cadeia de certificados
O exemplo a seguir é a saída dos comandos OpenSSL para um exemplo de cadeia 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 mostrado acima, observe o seguinte:
-
O
Subject
do certificado intermediário corresponde aoIssuer
do certificado da entidade. -
O
Subject
do certificado raiz corresponde aoIssuer
do certificado intermediário. -
O
Subject
e oIssuer
são os mesmos no certificado raiz.
No exemplo acima, você pode confirmar que o exemplo de cadeia de certificados é válido.
-
Como verificar o assunto e o hash do emissor do certificado
Nesta seção, explicamos como conseguir o hash do assunto e do emissor dos certificados e verificar se você tem uma cadeia de certificados válida.
É sempre bom verificar a sequência de hash dos certificados, já que isso pode ajudar a identificar problemas como o nome comum (CN, na sigla em inglês) do certificado com espaços ou caracteres especiais indesejados.
- Execute o seguinte comando OpenSSL para receber a sequência
hash
de cada certificado na cadeia deentity
aroot
e verifique se eles formam uma cadeia de certificados adequada. - Verifique se os certificados na cadeia seguem as seguintes diretrizes:
-
Subject
de cada certificado corresponde aoIssuer
do certificado anterior na cadeia (exceto oEntity
). -
Subject
eIssuer
são as mesmas para o certificado raiz. -
O
subject hash
do certificado intermediário corresponde aoissuer hash
do certificado da entidade. -
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á considerada completa e válida.
Exemplo de validação da cadeia de certificados usando a sequência de hash
O exemplo a seguir é a saída dos comandos OpenSSL para uma cadeia de certificados de amostra 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 mostrado acima, observe o seguinte:
No exemplo acima, você pode confirmar que o exemplo de cadeia de certificados é válido.
Como verificar a validade do certificado
Nesta seção, explicamos como verificar se todos os certificados na cadeia estão expirados usando os métodos a seguir:
- Encontre a data de início e de término do certificado.
- Mostra o status de expiração.
Datas de início e término
Execute o comando OpenSSL a seguir para conferir a data de início e término de cada certificado na cadeia de entity
a root
, e verifique se todos os certificados na cadeia estão em vigor (a data de início é anterior a hoje) e não estão expirados.
Exemplo de validação de validade do certificado até 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 na próxima N seconds
. Retorna o status de expiração do
certificado 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 usando a opção de checkend
O comando a seguir usa 0 seconds
para verificar se o certificado já 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 o certificado ainda não expirou.