Deprecating Client Authentication Extended Key Usage in certificates

We have OpenSearch and OpenSearch Dashboards 2.19.1 running on a single node and everything is working great! Both sit behind a nginx reverse proxy and communication between nginx and OpenSearch is over TLS. We also have an admin certificate which we use to run the securityadmin.sh script with the arguments -cacert, -cert, and -key. The admin certificate and the TLS certificate for OpenSearch are issued by my company and they are the root CA, which works because this is all internal. As I said before, everything is working smoothly and as expected.

Recently, my company sent out an email saying that the “Client Authentication Extended Key Usage” will no longer be included in public TLS certificates and I’m trying to understand how this will impact my OpenSearch setup. It looks like this change is happening industry-wide ( Sunsetting the client authentication EKU from DigiCert public TLS certificates , Removal of the Client Authentication EKU from TLS Server Certificates – What You Need to Know - SSL.com ). From everything I mentioned about my setup, will this change affect us? We are thinking about establishing a cluster in the future. How will this change impact us then?

Looking at my two certificates, I can see that the Extended Key Usage lists both server and client:
$ openssl x509 -in certificate.crt -text -noout | grep -A1 “Extended Key Usage”
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication

Thanks in advance!

Hi @Phil. The mentioned article regards public SSL certificates created by external CAs.
Your cluster is using internal certificates, and your admins can create certificates that have both Client and Server authentication in EKU.

Regarding the OpenSearch cluster, these EKU settings should be in your internal certificates.

OpenSearch SSL HTTP (9200) - Server Authentication
OpenSearch SSL Transport (9300-9400) - Client and Server Authentication
admin_dn (superadmin certificate for securityadmin.sh script) - Client Authentication

OpenSearch Dashboards HTTPS (443) - Server Authentication

The reason why the transport layer requires both Client and Server Authentications is the fact that OpenSearch nodes initiate SSL communication with other nodes using an SSL certificate (mTLS) and at the same time expose themselves for SSL communication. On ports 9300-9400, they act as a client and server at the same time.

2 Likes

This was very helpful! Thank you so much!

1 Like