当我的一台服务器尝试连接到安全端口时,我收到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" />
我还需要添加其他设置吗?
答案 0 :(得分:2)
您可能想尝试在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"/>
答案 1 :(得分:0)
尝试使用
import math.{max,min}
case class FG(f: Int, g: Int) {
def combine(that: FG) =
FG(max(f, that.f), min(g, that.g))
def result = f - g
}
val result = {
rdd
.map{ case Array(_, _, c, _, e, f, g, _, _) =>
((c, e), FG(f, g)) }
.reduceByKey(_ combine _)
.map{ case ((c, _), fg) =>
(c, fg.result) }
.reduceByKey(_+_)
}
查看输出并确定证书的主题和颁发者是什么。
验证证书的颁发者是否在您的TrustStore文件中。
如果这是从中间CA发出的,则服务器应该将发布链呈现到路径的根目录(减去根CA)。您的信任库应包含根CA证书。