When I use my browser (a TLS client) to navigate to a secure web page (e.g. https://example.com
), during the TLS handshake, the browser will receive an end-entity certificate from the web server of example.com
. It'll most likely be signed by an intermediate CA, using its private key. To verify this signature, the browser must have the intermediate CA's public key, and thus certificate. Since this intermediate CA certificate is not in the browser's or the OS's root store, the browser must fetch it from somewhere.
My question is - where do TLS clients, like my browser, fetch intermediate CA certificates from? And how can they do it securely?