OpenSSL mostra la seguente catena di certificati per example.com:443.
$ openssl s_client -connect example.com:443 < /dev/null | head -10
depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
DONE
CONNECTED(00000003)
---
Certificate chain
0 s:/C=US/ST=California/L=Los Angeles/O=Internet Corporation for Assigned Names and Numbers/OU=Technology/CN=www.example.org
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
La catena di certificati ha il certificato del server rilasciato su www.example.org e un certificato intermedio che appartiene alla DigiCert SHA2 High Assurance Server CA.
Tuttavia, la catena di certificati non contiene il certificato di radice autofirmato per DigiCert High Assurance EV Root CA.
Ma sia Firefox che Chrome mostrano anche il certificato di origine come parte della catena di certificati. Questo perché questi certificati radice vengono forniti in bundle con i browser.
Voglio sapere se c'è un modo in Firefox o Chrome per capire che solo due dei tre certificati nella catena di certificati visualizzata appartengono alla catena di certificati fornita dal server nell'handshake TLS? Forse una sorta di indicatore visivo o qualche altra cosa che differenzia i certificati apparsi nella catena di certificati da quelli che fanno parte dell'archivio fidato del browser?