从wso2 Enterprise Integrator调用身份服务器web服务时出现SSL证书未知异常



我得到

javax.net.ssl.SSLException:收到致命警报:certificate_unknown

在从企业集成商调用身份服务器端点时,尽管我们已经生成了SSL证书,并且它被导入到truststore.jks中,但仍然会收到此错误。

在测试连接时,它说Successfully connected to identity server,但在调用端点时,它在控制台上给出SSL异常。

Message=将向IS发送请求,MessageCode=null,ErrorMessage=null,ErrorDetail=null,错误异常=null{org.apache.synapse.mediators.builtin.LogMediator}TID:[-1][]〔2017-11-07 07:14:4841〕错误{org.apache.synapse.transport.passthrough.TargetHandler}-I/O错误:收到致命警报:certificate_unknown{org.apache.synapsp.transport.paththrough.TTargetHandler}javax.net.ssl.SSLException:收到致命警报:certificate_unknown在sun.security.ssl.Alerts.getSSLException(Alerts.java:208)

尝试手动设置信任库。打开wso2ei-6.1.1/bin/integrator.sh并像这样添加javax.net.ssl.trustStore

-Dorg.wso2.ignoreHostnameVerification=true 
-Djavax.net.ssl.trustStore="$CARBON_HOME/repository/resources/security/client-truststore.jks"
org.wso2.carbon.bootstrap.Bootstrap $*
status=$?
done

我希望您发现了问题。几天前我也遇到了同样的问题,所以我正在为记录写解决方案。要解决此问题,您需要将每个产品证书导入另一个产品的信任库中。

  1. 转到WSO2-EI并从wso2carbon.jks中提取证书
  2. 将证书添加到WSO2中的client-truststore.jks文件是
  3. 转到WSO2 IS并从wso2carbon.jks中提取证书
  4. 将证书添加到WSO2中的client-truststore.jks文件EI

当WSO2 IS版本在v.4.0之前时,我们遇到了同样的问题,但我们没有像Gabriel所说的那样从wso2carbon.jks中提取证书,而是从浏览器中提取证书。打开了WSO2 EI和WSO2 IS上的碳控制台。出于某种原因,浏览器中返回的localhost证书与WSO2-EI的wso2carbon.jks中存储的证书不同(在版本6.1.0和6.1.1上测试)。原因之一可能是它从JVM的密钥库中返回localhost证书。这就是为什么最好从浏览器中获取它。

  1. 在浏览器https://localhost:9443/carbon of WOS2 IS.(Firefox:点击地址栏中的locker->连接->详细信息->更多信息->安全选项卡->查看证书->详细信息选项卡->导出…->另存为X.509证书(PEM)Chrome:点击地址栏中的"不安全"警告->证书->详细信息选项卡->复制到文件…->下一步->选择格式->Base-64编码的X.509(.CER)->下一步…)
  2. 将证书导入{WSO2_IS_HOME}/repository/resources/security/client-truststore.jks中。最终使用KeyStore Explorer工具更简单
  3. 在浏览器https://localhost:99444/carbon of WOS2 IS中打开(WSO2 IS的偏移量为1),并执行与点1相同的操作
  4. 将证书导入{WSO2_EI_HOME}/repository/resources/security/client-truststore.jks

最新更新