尝试连接到终结点时出错。不能为 ssl 借用客户端

Error while trying to connect to the endpoint. Cannot borrow client for ssl

此错误正在 WSO2 API 管理器 wso2carbon.log..

中打印
sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:88)
    at org.wso2.carbon.databridge.agent.endpoint.binary.BinarySecureClientPoolFactory.createClient(BinarySecureClientPoolFactory.java:53)
    ... 9 more
TID: [-1] [] [2016-12-28 22:16:04,043] ERROR {org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker} -  Error while trying to connect to the endpoint. Cannot borrow client for ssl://192.168.1.36:9711 {org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker}
org.wso2.carbon.databridge.agent.exception.DataEndpointAuthenticationException: Cannot borrow client for ssl://192.168.1.36:9711
    at org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker.connect(DataEndpointConnectionWorker.java:100)
    at org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker.run(DataEndpointConnectionWorker.java:43)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.wso2.carbon.databridge.agent.exception.DataEndpointException: Error while opening socket to 192.168.1.36:9711. Connection refused: connect
    at org.wso2.carbon.databridge.agent.endpoint.binary.BinarySecureClientPoolFactory.createClient(BinarySecureClientPoolFactory.java:58)
    at org.wso2.carbon.databridge.agent.client.AbstractClientPoolFactory.makeObject(AbstractClientPoolFactory.java:39)
    at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1212)
    at org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker.connect(DataEndpointConnectionWorker.java:92)
    ... 6 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)

任何人都可以帮我解决这个问题吗?我只是在使用 WSO2 API 单独管理器

这里失败的是限制数据发布。可能的原因是 thrift 端口 (9711) 在与 192.168.1.36.

不同的网络接口上打开

您可以在 api-manager.xml<ThrottlingConfigurations> 部分配置正确的 IP。 (替换${carbon.local.ip})

<ThrottlingConfigurations>
    <EnableAdvanceThrottling>true</EnableAdvanceThrottling>
    <DataPublisher>
        <Enabled>true</Enabled>
        <Type>Binary</Type>
        <ReceiverUrlGroup>tcp://${carbon.local.ip}:${receiver.url.port}</ReceiverUrlGroup>
        <AuthUrlGroup>ssl://${carbon.local.ip}:${auth.url.port}</AuthUrlGroup>
        <Username>${admin.username}</Username>
        <Password>${admin.password}</Password> 

此异常表明与 APIM-Publisher URL 建立的连接不是来自经过身份验证的客户端。

要解决此问题,您必须将创建的 .jks 的 public 证书导入 $Server_Home/repository/resources/security/client-truststore.jks 文件。 client-truststore.jks 包含证书条目,以便客户端可以使用它与后端通信。

按照以下步骤操作。

将 public 证书导出到 .pem 文件 keytool -export -alias wso2carbon -keystore wso2carbon.jks -file publickey.pem

上面的命令,遍历 wso2carbon.jks 密钥库并检查带有“wso2carbon”的条目。找到它后,将该条目中的 public 证书复制到 publickey.pem 文件。

将 .pem 文件导入客户端-truststore.jks。 keytool -import -alias wso2 -file publickey.pem -keystore client-truststore.jks -storepass wso2carbon

可能您已经从控制台更改了“admin”用户的密码,但您没有在与超级管理员关联的 deployment.toml 中更改它。

这样做我就解决了