我将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 ...可能有一些地方我不应该改变或者我应该改变吗?
答案 0 :(得分:0)
Received fatal alert: certificate_unknown
这可能是由于API Manager服务器无法验证收到的证书。 (也许在调用身份服务器时)。如果收到的证书不是经过CA签名的,则APIM服务器将无法对其进行验证,除非其证书已位于客户端信任库中。
如前所述,您已经将 wso2carbon.jks 替换为 mycert.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
如果问题仍然存在,请在this之后添加SSL调试日志。这些日志将提供有关问题出在哪里和确切原因的更多信息。