WSO2 BinaryDataReceiver从套接字读取时出错

时间:2018-05-08 04:49:13

标签: wso2 wso2esb wso2is wso2-am wso2carbon

我将API管理器迁移到2.1.0版本,我收到以下错误。我使用了相同的证书,我用于身份服务器,它应该工作。如何找出导致此问题的原因?哪个文件可以我查一下?

[2018-05-08 04:46:50,601]  WARN - FileSystemPreferences Could not lock System prefs. Unix error code 1.
[2018-05-08 04:46:50,601]  WARN - FileSystemPreferences Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
[2018-05-08 04:47:04,287]  INFO - PermissionUpdater Permission cache updated for tenant -1234
[2018-05-08 04:47:09,272] ERROR - BinaryDataReceiver Error while reading from the socket.
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
        at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2023)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
        at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:928)
        at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)

我正在使用名为mycert.jks的自定义jks ...我在使用密钥库名称的所有地方用mycert.jks替换wso2carbon.jks ...可能有一些地方我不应该改变或者我应该改变吗?

1 个答案:

答案 0 :(得分:0)

Received fatal alert: certificate_unknown这可能是由于API Manager服务器无法验证收到的证书。 (也许在调用身份服务器时)。如果收到的证书不是经过CA签名的,则APIM服务器将无法对其进行验证,除非其证书已位于客户端信任库中。

如前所述,您已经将 wso2carbon.jks 替换为 mycert.jks 。请确保您也已完成以下操作。

  1. 从新的私钥中提取/导入公共证书,并将其添加/导出到API Manager服务器的client-truststore.jks中。 keytool -export -alias certalias -keystore newkeystore.jks -file <public key name>.pem keytool -import -alias certalias -file <public key name>.pem -keystore client-truststore.jks -storepass wso2carbon
  2. 您必须为密钥存储区设置相同的密码,然后自行对其进行密钥设置。

如果问题仍然存在,请在this之后添加SSL调试日志。这些日志将提供有关问题出在哪里和确切原因的更多信息。