在WSO2Carbon中执行API时存在错误的\u证书

在WSO2Carbon中执行API时存在错误的\u证书,wso2,ssl-certificate,wso2carbon,Wso2,Ssl Certificate,Wso2carbon,虽然我的站点的证书没有问题(“openssl verify mysite.com.cer”结果为OK),并且我的站点通过了ssl认证,包括url栏中的绿色锁,但每当我的WSO2应用程序中的订户执行api时,我的站点都会生成一个致命警报:坏的\u证书 [2018-06-08 10:54:47,167] ERROR - SourceHandler I/O error: Received fatal alert: bad_certificate javax.net.ssl.SSLException:

虽然我的站点的证书没有问题(“openssl verify mysite.com.cer”结果为OK),并且我的站点通过了ssl认证,包括url栏中的绿色锁,但每当我的WSO2应用程序中的订户执行api时,我的站点都会生成一个致命警报:坏的\u证书

[2018-06-08 10:54:47,167] ERROR - SourceHandler I/O error: Received fatal alert: bad_certificate
javax.net.ssl.SSLException: Received fatal alert: bad_certificate
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1666)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1634)
    at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1800)
    at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1083)
    at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:907)
    at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
    at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.java:245)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.decryptData(SSLIOSession.java:378)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:413)
    at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:119)
    at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:218)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:281)
    at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
    at java.lang.Thread.run(Thread.java:748)
我浏览了几个关于“坏证书”的stackoverflow问题,但没有找到解决方案

要导入我的证书,我遵循以下步骤:

然后,我不得不更改几个配置文件以使用mykeys而不是wso2carbon。所以我做了

然后我重新启动wso2 carbon,登录并检查mykeys.JKS是否出现在密钥库列表中,它确实出现了

我的网站是正确的ssl认证,绿色锁显示在url栏。所有这些都可以正常工作,直到作为订户登录时,我尝试执行一个API,这将导致响应“ERROR-SourceHandler I/O ERROR:Received fatal alert:bad_certificate”和来自的上述日志

此错误记录在repository/logs/wso2-apigw-errors.log和wso2carbon.log中,但仅此消息,其他消息除外


下一步要查找我的证书未正确验证的原因?

问题在于自签名证书

假设您的服务已在此终结点发布:

https://192.168.99.3:8243/first/1.0.0 
然后你必须进入一个新的浏览器窗口

https://192.168.99.3:8243/
将浏览器设置为始终接受https证书


在此之后,api控制台中的调用应该可以工作

如果您有单独的存储和网关实例,请在浏览器中打开网关:9443/carbon并接受自签名证书。这应该行。

您能启用SSL调试日志并查看发生了什么吗?很好的一个,仅用于ssl:wso2server.sh-Djavax.net.debug=ssl。谢谢现在要做一些日志浏览。很有趣。我也尝试了上面的命令,它吐出了很多关于证书的信息,但它没有指定坏证书是哪一个。有没有一种方法可以识别WSO2 APIM所使用的证书?我在上面添加了一条评论。虽然这可能会有所帮助,但上面的问题似乎发生在API调用时。在我们的案例中,原木不断被喷出。我们如何识别坏证书?需要查看堆栈跟踪以了解它何时发生堆栈跟踪与OP发布的堆栈跟踪相同。实际上没有任何其他内容。它每10秒发生一次。我正在查看负载平衡器健康检查,但同样,日志并不能帮助缩小范围。
https://192.168.99.3:8243/