繁体   English   中英

如何让 Tomcat 在我的应用程序代码中为我提供用于身份验证的客户端证书?

[英]How do I get Tomcat to give me the client certificate for authentication in my Application code?

我有一个 java web 应用程序,它提供了一个 REST-API,我想为其实施客户端证书身份验证。 我正在使用 Tomcat 9 Web 服务器将应用程序部署为 warfile。

我只想对 REST API 进行验证,而不是对部署在同一服务器上的其他应用程序或其他请求(例如用户界面)进行验证。

因此,没有证书或没有有效证书的请求不应被我的 Web 服务器阻止,因此我可以在我的应用程序代码中验证客户端证书。

如果我没有为客户端认证配置 Tomcat,我将无法在我的应用程序代码中检索证书。

我尝试使用以下配置:

 <Connector            
protocol="org.apache.coyote.http11.Http11NioProtocol"              
port="8443" 
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keyAlias="tthserver" keystoreFile="C:\Temp\keystore\keystore.jks" keystorePass="PW"
truststoreFile="C:\Temp\keystore\truststore.jks" trustStorePass="PW"        
clientAuth="want" sslProtocol="TLS" />

但是,这会阻止带有无效客户端证书的请求。

您需要在 tomcat 中部署的需要客户端身份验证的 Web 应用程序的 web.xml 中添加 CLIENT-CERT 登录配置。 其他的web应用不需要这个配置,所以客户端访问其他web应用的资源时,不会进行客户端认证。

有关详细信息,您可以参考以下链接:- https://users.tomcat.apache.narkive.com/C1hxh39a/tomcat-and-client-certificates

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM