Eu tenho um certificado de entidade / servidor final que possui um certificado intermediário e raiz. Quando eu cat
no certificado de entidade final, vejo apenas um único BEGIN
e END
tag. É o único certificado da entidade final.
Existe alguma maneira de visualizar o conteúdo do certificado intermediário e raiz. Eu preciso apenas do conteúdo BEGIN
e da END
tag.
No Windows, posso ver a cadeia completa de certificados no "Caminho da certificação". Abaixo está o exemplo do certificado do Stack Exchange.
A partir daí, posso executar um certificado de exibição e exportá-lo. Eu posso fazer isso tanto para raiz quanto para intermediário no Windows. Eu estou procurando esse mesmo método no Linux.
openssl
ssl
certificates
Anirban Nag 'tintinmj'
fonte
fonte
Respostas:
Em um site, você pode:
Isso mostrará a cadeia de certificados e todos os certificados que o servidor apresentou.
Agora, se eu salvar esses dois certificados em arquivos, posso usar
openssl verify
:A
-untrusted
opção é usada para fornecer o (s) certificado (s) intermediário (s);se.crt
é o certificado a verificar. O resultado depth = 2 veio do armazenamento confiável da CA do sistema.Se você não possui os certificados intermediários, não pode executar a verificação. É assim que o X.509 funciona.
Dependendo do certificado, ele pode conter um URI para o intermediário. Como exemplo,
openssl x509 -in se.crt -noout -text
contém:Esse URI "CA Issuers" aponta para o certificado intermediário (no formato DER, portanto, você precisa usá
openssl x509 -inform der -in DigiCertSHA2HighAssuranceServerCA.crt -out DigiCertSHA2HighAssuranceServerCA.pem
-lo para convertê-lo para uso posterior pelo OpenSSL).Se você executar ,
openssl x509 -in /tmp/DigiCertSHA2HighAssuranceServerCA.pem -noout -issuer_hash
obtém244b5494
, o que você pode procurar no armazenamento da CA raiz do sistema em/etc/ssl/certs/244b5494.0
(basta anexar.0
ao nome).Eu não acho que exista um comando OpenSSL agradável e fácil de fazer tudo isso por você.
fonte
BEGIN
e aEND
tag (que você obterá depois decat
inserir o arquivo .crt.openssl x509 -in file.crt -noout -text
BEGIN
eEND
.openssl x509
comando, não acho que o certificado intermediário esteja lá. (A menos que você tenha algum erroopenssl x509
).tl; dr - magia de basquete de um forro para despejar todos os certs na cadeia
Explicação em 2 etapas
Para despejar todos os certificados da cadeia no diretório atual como
cert${chain_number}.pem
:bonus-track para renomeá-los para seu nome comum:
fonte