我需要有关在tomcat 8上安装.pfx证书的帮助。
我已经通过创建jks在jvm上安装了.pfx证书。 我已经在cacert中添加了证书
keytool -import -alias 192.168.56.100 -keystore" C:\ Program Files \ Java \ jdk1.8.0_91 \ jre \ lib \ security \ cacerts" -trustcacerts -file C:\ EBCM_Client_TEST.pfx
我已经在tomcat 8上部署了服务器的战争,并且我在端口8444上配置了连接器:
当我尝试从服务器调用HTTPS API到其他服务器时,在日志中我收到此错误:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我已经配置了tomcat安装的server.xml
<Connector port="8444"
maxHttpHeaderSize="8192"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
scheme="https"
secure="true"
SSLEnabled="true"
clientAuth="true"
sslProtocol="SSL/TLS"
keystoreFile="C:/EBCM_Client_TEST.pfx" keystorePass="allianzebcm" keystoreType="PKCS12"/>
在java中,用于创建自定义SSL上下文我使用
System.setProperty("javax.net.debug", "all");
System.setProperty("javax.net.ssl.trustStore", "C:/clientcert.jk");
System.setProperty("javax.net.ssl.trustStorePassword", "allianzebcm");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
//my certificate and password
System.setProperty("javax.net.ssl.keyStore", "C:/EBCM_Client_TEST.pfx");
System.setProperty("javax.net.ssl.keyStorePassword", "allianzebcm");
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
您是否知道如何在tomcat上配置证书pfx以进行HTTPS客户端身份验证?
由于
答案 0 :(得分:1)
问题是连接器server.xml上的端口
错误配置
<Connector port="8444"
更正配置
<Connector port="8443"
现在我可以使用pfx证书调用REST API。 感谢