In regards to the role of Truststores in the Mutual TLS process in the context of Apigee, I’d like to confirm my understanding of how the Truststore works. For this example Mutual TLS will be implemented with Apigee serving as the server.
Let’s say I have client cert (alice.crt) that has been signed by a certificate authority (CA.crt). Three scenarios come to mind for how to configure the Truststore:
-
Add client cert (alice.crt) to the Truststore
-
Add CA cert to the Truststore
-
Add both client cert (alice.crt) and CA cert to the Truststore.
My understanding is that only 2 and 3 will work to verify the client certificate. Option 1 will lead to a certificate error. The reason being that Apigee sees that the cert is signed, looks for the signer in the Truststore and does not accept the cert if it is not found.
If my understanding is correct then, as a consequence, if we have a second client cert (bob.crt) that is signed by the same CA as alice.crt and either option 2 or 3 is implemented, bob.crt will always be accepted. This is because in both option 2 or 3 the CA is present in the current truststore. Note that bob.crt is accepted even though bob.crt is not currently present in the truststore.
I reviewed the explanation at: https://community.apigee.com/questions/70981/tls-keystore-truststore.html
The bit about “you configure Apigee Edge with a Truststore TS1. You load exactly one cert into that truststore: the one for www.upstream.com. Apigee Edge will trust it.” has thrown me off a bit as it seems to go counter to the notion that a cert is only accepted when a cert that has signed it is trusted (present in the truststore).
Is there a way to configure Apigee to place a single client cert (alice.crt) in the truststore and have Apigee verify and accept only that cert without also accepting (bob.crt) that was signed by the same CA? I’m familiar with the concept of pulling client.cn and whitelisting using a policy. I just wanted to double check my understanding and make sure that this isn’t possible to implement using just the truststore.