Information
Client-cert authentication requires that each client connecting to the server have a certificate to authenticate. This is generally regarded as stronger authentication than a password as it requires the client to have the certificate and not just know a password.
Rationale:
Certificate based authentication is more secure than password based authentication.
Solution
In the Connector element, set the clientAuth parameter to true and the certificateVerification to required
<-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
port='8443' minProcessors='5' maxProcessors='75'
enableLookups='true' disableUploadTimeout='true'
acceptCount='100' debug='0' scheme='https' secure='true';
clientAuth='true' sslProtocol='TLS'/>
...
<Connector ...>
<SSLHostConfig
certificateVerification='required'
/>
Default Value:
Not configured
References:
https://tomcat.apache.org/tomcat-9.0-doc/config/http.html
https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html