https - javax.net.ssl.SSLHandshakeException:com.ibm.jsse2.util.h:PKIX 路径构建失败
问题描述
在 Linux 中使用 IIB 10.19。我开发了一个应用程序来通过 HTTP 请求节点调用 HTTPS REST URL。在 HTTP 请求节点的 SSL 选项卡中,当前的“协议”是 TLS。在“允许的 SSL 密码”和“SSL 客户端身份验证密钥别名”字段中,没有写入任何内容。“启用 SSL 证书主机名检查”和“启用证书吊销列表检查”均未选中。
如果没有证书安装,它就无法工作。因此,我按照以下步骤创建密钥库并将它们关联到集成服务器级别,其中 UFISBRK 是我的节点,TESTEG 是服务器:
keytool -genkey -alias localhost -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keypass welcome101 -keystore /home/mqm/TESTEG/Certificates/identity.jks -validity 365
keytool -export -alias localhost -file /home/mqm/TESTEG/Certificates/localhost.cer -keystore /home/mqm/TESTEG/Certificates/identity.jks -storepass welcome101
keytool -import -alias localhost -file /home/mqm/TESTEG/Certificates/localhost.cer -keystore /home/mqm/TESTEG/Certificates/trust.jks -storepass welcome101
keytool -import -trustcacerts -alias thrifty -file /home/mqm/TESTEG/Certificates/Thrifty.cer -keystore /home/mqm/TESTEG/Certificates/trust.jks -storepass welcome101
keytool -list -keystore /home/mqm/TESTEG/Certificates/identity.jks
keytool -list -keystore /home/mqm/TESTEG/Certificates/trust.jks
chmod 777 /home/mqm/TESTEG/Certificates/identity.jks
chmod 777 /home/mqm/TESTEG/Certificates/trust.jks
mqsichangeproperties UFISBRK -e TESTEG -o ComIbmJVMManager -n keystoreFile -v /home/mqm/TESTEG/Certificates/identity.jks
mqsichangeproperties UFISBRK -e TESTEG -o ComIbmJVMManager -n keystoreType -v JKS
mqsichangeproperties UFISBRK -e TESTEG -o ComIbmJVMManager -n keystorePass -v TESTEG::keystorePass
mqsisetdbparms UFISBRK -n TESTEG::keystorePass -u na -p welcome101
mqsichangeproperties UFISBRK -e TESTEG -o ComIbmJVMManager -n truststoreFile -v /home/mqm/TESTEG/Certificates/trust.jks
mqsichangeproperties UFISBRK -e TESTEG -o ComIbmJVMManager -n truststoreType -v JKS
mqsichangeproperties UFISBRK -e TESTEG -o ComIbmJVMManager -n truststorePass -v TESTEG::truststorePass
mqsisetdbparms UFISBRK -n TESTEG::truststorePass -u na -p welcome101
mqsireportproperties UFISBRK -o ComIbmJVMManager -a -e TESTEG
mqsistop UFISBRK
mqsistart UFISBRK
但是,它仍然无法正常工作。给出以下错误:
<Text>javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by OU=Go Daddy Class 2 Certification Authority, O="The Go Daddy Group, Inc.", C=US is not trusted; internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error</Text>
我加载的证书和错误中提到的证书是不同的。另外,我已经检查了这个 Go Daddy 组证书。它不在我创建的信任库中。它位于 /home/mqm/acdm/java/jdk1.8.0_131/jre/lib/security/cacerts 路径中的默认信任库中。
我不知道,新创建的信任库是如何被忽略的。有什么我做错了吗?该怎么做才能解决问题?
--------------这部分是后面添加的,broker重启后的当前错误日志--------------
( ['MQROOT' : 0x7fb94129e4b0]
(0x01000000:Name):RecoverableException = (
(0x03000000:NameValue):File = '/build/slot3/S1000_P/src/DataFlowEngine/MessageServices/ImbDataFlowNode.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 1251 (INTEGER)
(0x03000000:NameValue):Function = 'ImbDataFlowNode::createExceptionList' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmWSRequestNode' (CHARACTER)
(0x03000000:NameValue):Name = 'ThriftyService_MF#FCMComposite_1_3' (CHARACTER)
(0x03000000:NameValue):Label = 'ThriftyService_MF.HTTP Request' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2230 (INTEGER)
(0x03000000:NameValue):Text = 'Node throwing exception' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 14 (INTEGER)
(0x03000000:NameValue):Text = 'ThriftyService_MF.HTTP Request' (CHARACTER)
)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = '/build/slot3/S1000_P/src/WebServices/WSLibrary/ImbWSRequestNode.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 1147 (INTEGER)
(0x03000000:NameValue):Function = 'ImbWSRequestNode::evaluate' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 3162 (INTEGER)
(0x03000000:NameValue):Text = 'WebService Request Exception' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 12 (INTEGER)
(0x03000000:NameValue):Text = '436f6e74656e742d547970653a20746578742f786d6c3b20636861727365743d7574662d380d0a486f73743a206c6f67696e2e746872696674797561652e61650d0a534f4150416374696f6e3a2022220d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a0d0a' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 12 (INTEGER)
(0x03000000:NameValue):Text = '' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'GET /ThriftyAUHAirport/ThriftyAUHAirport.svc/ChargeCodesThrifty?Key=M28%4090R%40i%2A%40l24%2AE%2ASp3%406OT%40hsw9se36r HTTP/1.1
' (CHARACTER)
)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = '/build/slot3/S1000_P/src/WebServices/WSLibrary/ImbWSRequest.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 655 (INTEGER)
(0x03000000:NameValue):Function = 'ImbWSRequest::makeWSRequest' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 3152 (INTEGER)
(0x03000000:NameValue):Text = 'A Web Service request has detected a SOCKET error whilst invoking a web service located at host &1, on port &2, on path &3.' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'login.thriftyuae.ae' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 2 (INTEGER)
(0x03000000:NameValue):Text = '443' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '/ThriftyAUHAirport/ThriftyAUHAirport.svc/ChargeCodesThrifty' (CHARACTER)
)
(0x01000000:Name ):SocketException = (
(0x03000000:NameValue):File = '/build/slot3/S1000_P/src/WebServices/WSLibrary/ImbSocket.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 1289 (INTEGER)
(0x03000000:NameValue):Function = 'ImbSocketJNIManager::handleGeneralJavaException' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 3165 (INTEGER)
(0x03000000:NameValue):Text = 'An error occurred whilst performing an SSL socket operation' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'connect' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by CN=USERTrust RSA Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US is not trusted; internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error' (CHARACTER)
)
)
)
)
)
-------------这部分是后面添加的,broker重启后的当前错误日志------------------------- ---
解决方案
推荐阅读
- wordpress - WooCommerce:如何在优惠券折扣中取消税收?
- sql - SQL Server 数据库使用特殊字符自动更新
- java - Java中Object类型值的累计和
- android-studio - 如何格式化(粗体)文本中的单词?
- ios - 如何设置任何 UITableViewCell 的背景图像?
- excel - 从文件路径中的数组中查找值 [Excel]
- pagination - Yii2 CRUD 和分页
- tensorflow - 即使学习率设置为 0,变量仍然会更新
- python - pip install virtual env wrapper - win 显示错误:
- android - 在没有代码注入的情况下测量本机移动应用程序响应时间