Forum Discussion
Mutual Authentication over public internet
Based on the example configuration, I am assuming you are providing the service which the SaaS server is connecting to and you have wired up the virtual server with a publicly signed certificate.
To answer your question,
Mutual authentication is essentially based on trust, in this scenario:
-
The certificate on the virtual server needs to be trusted by the Saas server. As this is a publicly signed certificate, that should be pretty straight forward.
-
The certificate that the Saas server presents needs to be trusted by the virtual server. It is your choice which trusted CAs these certificates are issued from.
For greater control, these should be issued by your internal PKI. You could also trust third-party CAs that issue certificates on your behalf.
Do take note that any CAs you choose, needs to have its CRL available and imported to the F5 if you have the requirement of revocation checking.
You can validate by checking the certificate that is presented by the client (Saas) during the TLS handshake. The most unique attribute that you can check is the thumbprint of the certificate. The iRule below will check if the thumbprint is listed within a data group, disconnecting if its not in the list.
You need to make sure the client SSL profile you are using is set to require/request.
when CLIENTSSL_CLIENTCERT {
binary scan [sha1 [SSL::cert 0]] H* _sha1_thumbprint
if {! [class match $_sha1_thumbprint equals allowed_certsha1_dg] } {
SSL::session invalidate
reject
}
}
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
