javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException 连接到安全端口时
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException while connecting to a secure port
当我的其中一台服务器尝试连接到安全端口时,我遇到了 SSL 异常。
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: PKIXCertPathBuilderImpl could not build a valid CertPath. java.security.cert.CertificateException: PKIXCertPathBuilderImpl could not build a valid CertPath. PKIXCertPathBuilderImpl could not build a valid CertPath
我已经在 jvm.options 中设置了信任库:
-Djavax.net.ssl.trustStore=/home/rpp/TrustStore
-Djavax.net.ssl.trustStorePassword=passw0rd
-Djavax.net.ssl.trustStoreType=jks
在server.xml我添加了
<keyStore id="defaultKeyStore" location="/root/ssl/bmx-zuu.net.jks" password="passw0rd" />
我还需要添加其他设置吗?
尝试使用
openssl s_client -connect <hostname>:<portnumber> -showcerts
查看输出并确定证书的主题和颁发者。
验证证书的颁发者是否在您的 TrustStore 文件中。
如果这是从中间 CA 颁发的,服务器应该将颁发链呈现到路径的根(减去根 CA)。您的信任库应包含根 CA 证书。
您可能想尝试在 Liberty 上定义 SSL 配置,如下所示。密钥库的定义与上面的定义完全相同,但在 server.xml 中添加了 TrustStore。假设 TrustStore.jks 拥有与服务器建立信任的签署者证书。
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef=“myTrustStore"/>
<<keyStore id="defaultKeyStore" location="/root/ssl/bmx-zuu.net.jks" password="passw0rd" />
<keyStore id=“myTrustStore" location="${server.config.dir}/TrustStore.jks" password="mypassword" type="JKS"/>
当我的其中一台服务器尝试连接到安全端口时,我遇到了 SSL 异常。
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: PKIXCertPathBuilderImpl could not build a valid CertPath. java.security.cert.CertificateException: PKIXCertPathBuilderImpl could not build a valid CertPath. PKIXCertPathBuilderImpl could not build a valid CertPath
我已经在 jvm.options 中设置了信任库:
-Djavax.net.ssl.trustStore=/home/rpp/TrustStore
-Djavax.net.ssl.trustStorePassword=passw0rd
-Djavax.net.ssl.trustStoreType=jks
在server.xml我添加了
<keyStore id="defaultKeyStore" location="/root/ssl/bmx-zuu.net.jks" password="passw0rd" />
我还需要添加其他设置吗?
尝试使用
openssl s_client -connect <hostname>:<portnumber> -showcerts
查看输出并确定证书的主题和颁发者。
验证证书的颁发者是否在您的 TrustStore 文件中。
如果这是从中间 CA 颁发的,服务器应该将颁发链呈现到路径的根(减去根 CA)。您的信任库应包含根 CA 证书。
您可能想尝试在 Liberty 上定义 SSL 配置,如下所示。密钥库的定义与上面的定义完全相同,但在 server.xml 中添加了 TrustStore。假设 TrustStore.jks 拥有与服务器建立信任的签署者证书。
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef=“myTrustStore"/>
<<keyStore id="defaultKeyStore" location="/root/ssl/bmx-zuu.net.jks" password="passw0rd" />
<keyStore id=“myTrustStore" location="${server.config.dir}/TrustStore.jks" password="mypassword" type="JKS"/>