从Mule项目调用安全webservice时出错
需要从我的Mule项目之一调用安全web服务。为此,我创建了一个自签名证书,并按照以下方式配置了我的项目: 1) 将keystore.jks保存在我的项目的资源文件夹中 2) 在Globals.xml文件中定义了https连接器从Mule项目调用安全webservice时出错,mule,esb,Mule,Esb,需要从我的Mule项目之一调用安全web服务。为此,我创建了一个自签名证书,并按照以下方式配置了我的项目: 1) 将keystore.jks保存在我的项目的资源文件夹中 2) 在Globals.xml文件中定义了https连接器 <https:connector name="movilcashHttpsConnector" doc:name="HTTP-HTTPS" clientSoTimeout="10000" cookieSpec="netscape" receiveBacklog="
<https:connector name="movilcashHttpsConnector" doc:name="HTTP-HTTPS" clientSoTimeout="10000" cookieSpec="netscape" receiveBacklog="0" receiveBufferSize="0" sendBufferSize="0" serverSoTimeout="10000" socketSoLinger="0" validateConnections="true">
<https:tls-key-store path="keystore.jks" keyPassword="changeit" storePassword="changeit" />
<https:tls-server path="keystore.jks" storePassword="changeit" />
</https:connector>
3) 在调用https端点时,我使用了以下配置
<https:outbound-endpoint method="POST"
doc:name="HTTP" exchange-pattern="request-response" transformer-refs="Message_Properties2"
responseTimeout="90000"
address="https://partners.masmovilcash.com/TelepinWeb/TpinBulkLoading?BatchType=7&FileExt=PNG&FileAbbrv=C_R&FileType=KYC_Documents&CustomerID=#[flowVars['tpin-customerid']]&FileSequence=2"
connector-ref="movilcashHttpsConnector">
</https:outbound-endpoint>
4) 在运行mule standlaone的Linux服务器上部署了该项目
但不幸的是,每次我都会遇到以下错误:
消息:未能通过端点路由事件:DefaultOutboundEndpoint{endpointUri=,connector=HttpsConnector
消息负载的类型为:PostMethod(org.mule.api.transport.DispatchException)
sun.security.validator.validator异常:未找到受信任的证书
位于sun.security.validator.SimpleValidator.buildTrustedChain(SimpleValidator.java:384)
我遗漏了什么吗?请帮助。因为您想要对外部服务执行HTTPS请求(),所以您需要确保您的应用程序信任服务证书。这意味着如果您为HTTPS连接器设置了信任存储,则所述信任存储需要包含服务证书 考虑到我已经能够从我的浏览器访问您需要的服务,它可能由适当的证书颁发机构(CA)签名,这意味着默认的Java信任存储应该可以工作。这意味着,尝试不设置任何信任存储/密钥存储数据,以便使用JVM默认值。例如:
<https:connector name="movilcashHttpsConnector" doc:name="HTTP-HTTPS" clientSoTimeout="10000" cookieSpec="netscape" receiveBacklog="0" receiveBufferSize="0" sendBufferSize="0" serverSoTimeout="10000" socketSoLinger="0" validateConnections="true"/>
由于要对外部服务()执行HTTPS请求,因此需要确保应用程序信任服务证书。这意味着,如果为HTTPS连接器设置信任存储,则所述信任存储需要包含服务证书 考虑到我已经能够从我的浏览器访问您需要的服务,它可能由适当的证书颁发机构(CA)签名,这意味着默认的Java信任存储应该可以工作。这意味着,尝试不设置任何信任存储/密钥存储数据,以便使用JVM默认值。例如:
<https:connector name="movilcashHttpsConnector" doc:name="HTTP-HTTPS" clientSoTimeout="10000" cookieSpec="netscape" receiveBacklog="0" receiveBufferSize="0" sendBufferSize="0" serverSoTimeout="10000" socketSoLinger="0" validateConnections="true"/>
感谢您的回复。修改连接器配置后,我收到以下错误:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径似乎默认JVM信任存储没有CA证书。我认为CA是GoDaddy,因此可能需要检查。我认为最新更新具有证书,因此您可能希望尝试更新Java。此处有一些数据:。感谢您的回复。修改连接器配置后,Iam收到以下错误:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径似乎是默认的JVM信任存储没有CA证书。我认为CA是GoDaddy,因此可能需要检查。我认为最新更新具有证书,因此您可能需要尝试更新Java。此处有一些数据:。