【发布时间】:2017-05-13 11:29:36
【问题描述】:
刚开始使用 wso2-am。我发布了示例 PizzaShackAPI: /pizzashack/1.0.0 API 并针对它注册了一个默认应用程序。我可以(重新)为默认应用程序生成密钥,这样,我可以调用例如API 控制台中的 GET/菜单项。只要访问令牌有效,这就会给我预期的列表。
然而,在 API 控制台中,等效的 curl 命令也给出为:
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 00cb3832-f73f-3536-b287-4330a47ef4bd' 'https://192.168.1.9:8243/pizzashack/1.0.0/menu'
我在 windows (curl-7.54.0-win64-mingw) 下运行它,但这不起作用。尝试用双引号等替换一些引号,但都无济于事。此外,我假设我对在 wso2-am 本身(在端口 8243 上)运行的服务使用单向 SSL,并且我自己不需要提供任何证书。我也意识到服务器端使用自签名证书,并且不确定这在这种情况下是否有任何影响。
希望有人可以帮助我解决这个问题。
作为补充 - 刚刚注意到在 wso2-am 服务器的 sys$output 中列出了以下内容:
[2017-05-13 00:38:38,858] ERROR - SourceHandler I/O error: Received fatal alert:
unknown_ca
javax.net.ssl.SSLException: Received fatal alert: unknown_ca
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1639)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1607)
at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1776)
at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1068)
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:890)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:764)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.ja
va:245)
我认为这是由于 curl 命令命中 API 服务造成的。
谢谢彼得
【问题讨论】: