Trusted Certificate Authority (CA) Cert
----> 2nd Level Certificate
--------> 3rd Level Certificate
------------> Machine/Application Certificate
It was the "2nd Level Certificate" that expired for us. When that happened, our ArcSight console application would no longer allow us to log into the ArcSight ESM. What was puzzling was that the ArcSight web interface continued to work just fine, as did other web applications who had that certificate in their chains. We spent about a day working on this and eventually figured out why only the ArcSight Console was failing and that the fix turned out to be relatively simple.
When the browser initiates a secure connection to a server, it requests the application's certificate and walks the certificate chain until it finds a trusted CA certificate. In this corporate environment, the 2nd level certificate had been revoked and a replacement added as a root certificate. In addition the "3rd Level Certificate" was also listed as a trusted root certificate. So as the browser walked up the certificate chain it did the following:
- Examine "Machine/Application Certificate" -> this certificate is not trusted. Must examine the issuing authority for this certificate, the 3rd level cert. (Side note, adding the application certificate as an accepted root cert is what you do when you use a self-signed certificate.)
- Examine "3rd Level Certificate" -> this is a trusted root certificate.
- Certificate is trusted and connection is created.
Note that the expired "2nd Level Certificate" is never examined here. However, the ArcSight Console application only had the "Trusted CA Cert" at the top level in its cacerts file. So its flow looked like this:
- Examine "Machine/Application Certificate" -> this certificate is not trusted. Must examine the issuing authority for this certificate, the 3rd level cert.
- Examine "3rd Level Certificate" -> this certificate is not trusted. Must examine the issuing authority for this certificate, the 2nd level cert.
- Examine "2nd Level Certificate" -> this certificate is not trusted and is EXPIRED. Cease walking the certification chain.
- A trusted connection can't be made.
Are there any security implications to this? It seems like we're creating a bypass around an expired certificate.
Why does a certificate authority (in this case 2nd level) issue certificates that expire after its own? That seems like bad practice.
No comments:
Post a Comment