- Client authentication ensures whether the users are legitimate or not
- In HTTPS, browsers and webservers communicate over secured SSL encrypted conneciton
- Servers determine a visitor’s identity using the following methods
– If tomcatAuthentication=“false", then it retrieves the username and assumes all authentication is done
– If tomcatAuthentication=“true", CLIENT-CERT results in the value of org.apache.catalina.authenticator.SSLAuthenticator is input to the application - The client and the server present each other their certificates from the keystores in authentication process
- Authentic client and server certificate copies are stored in each of the keystores for secured SSL communication

💖Certificate Generation with Keytool
- Keystore class is a memory collection of keys and certificates
- Keytool is a command line tool provided by Java for generating keystores
- Every keystore has a unique private key that cannot be exported but can be copied easily
- A keytool helps in sharing public version of the private key with the server
💖Certificate Generation with Keytool (Cont’d)
- Generating the Client and Server Keystores

- Exporting the Client’s Public Certificate and Importing it in to the Server’s Keystore

- Export the Server’s Public Certificate and import it in to the Client’s Keystore

- Configure Tomcat for SSL using the Server Keystore

Note:
– Appropriate paths and passwords substituted for truststorePass. truststoreFile. keystorePass, and keystoreFile in { tomcat.home } / conf / server.xml
– clientAuth attribute enquires clients to provide authentication certificates
Implementing Encryption and Certificates in Client Application
