【问题标题】:SSL certificate unknown exception while calling identity server web services from wso2 Enterprise Integrator从 wso2 Enterprise Integrator 调用身份服务器 Web 服务时出现 SSL 证书未知异常
【发布时间】:2017-11-07 07:23:55
【问题描述】:

我来了

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

在从企业集成商调用身份服务器端点时,虽然我们已经生成了 SSL 证书并在 truststore.jks 中导入,但仍然出现此错误。

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

Message = Going to send Request to IS.,MessageCode = null,ErrorMessage = null,ErrorDetail = null,ErrorException = null {org.apache.synapse.mediators.builtin.LogMediator} TID:[-1] [] [2017-11-07 07:14:54,841] 错误 {org.apache.synapse.transport.passthru.TargetHandler} - I/O 错误:收到致命警报:certificate_unknown {org.apache. synapse.transport.passthru.TargetHandler} javax.net.ssl.SSLException:收到致命警报:certificate_unknown 在 sun.security.ssl.Alerts.getSSLException(Alerts.java:208)

【问题讨论】:

  • 证书导入似乎有问题。如果您正确导入它,这应该可以工作。如果您发布您遵循的步骤,我可以验证。
  • 嗨,我从 mozilla 中提取了 .crt 文件及其身份服务器的默认证书,但我无法调用其管理服务 localhost:9444/services/… 使用以下命令将其导入 Enterprise Integrator keytool -import -trustcacerts -alias identityserver -file /home/appliance/ggmd-is.crt -keystore /opt/wso2/dev/ei/wso2ei-6.1.1/repository/resources/security/client-truststore.jks
  • 您使用的是默认密钥库吗?添加后是否重启了服务器?
  • 是的,我使用的是默认密钥库,并在导入后重新启动了服务器。 p.s 我对 wso2esb 做了同样的事情,它在那里工作,但不适用于 wso2ei(企业集成商)
  • 这很奇怪。您可以从 ESB 中获取 client-truststore.jks 并替换 EI 中的那个吗?然后重新启动并重试。

标签: ssl wso2 ssl-certificate wso2is wso2ei


【解决方案1】:

尝试手动设置信任库。像这样打开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

【讨论】:

  • 嗨,BHA,我也试过了,在我的 integrator.sh 中手动添加了信任库并再次运行 EI,但又遇到了同样的问题。
【解决方案2】:

我希望你找到了问题。几天前我遇到了同样的问题,所以我正在编写解决方案以备不时之需。 要解决此问题,您需要将每个产品证书导入另一个信任库中。

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

【讨论】:

    【解决方案3】:

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

    1. 在 WOS2 IS 的浏览器https://localhost:9443/carbon 中打开。 (Firefox:点击地址栏中的locker -> Connection -> details -> More Information -> Security tab -> 查看 Certificate -> Details tab -> Export... -> 另存为X .509 证书(PEM);Chrome:点击地址栏中的不安全警告 -> 证书 -> 详细信息选项卡 -> 复制到文件 ... -> 下一步 -> 选择格式 -> 基础-64 编码的 X.509 (.CER) -> 下一步 ...)
    2. 将证书导入 {WSO2_IS_HOME}/repository/resources/security/client-truststore.jks。最终使用 KeyStore Explorer 工具更简单。
    3. 在 WOS2 IS 的浏览器 https://localhost:9444/carbon 中打开(我们为 WSO2 IS 设置了偏移量 1)并与第 1 点相同。
    4. 将证书导入 {WSO2_EI_HOME}/repository/resources/security/client-truststore.jks。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 2017-09-01
      • 2019-01-05
      • 1970-01-01
      • 2020-05-09
      相关资源
      最近更新 更多