刚刚开始使用wso2-am。我发布了示例PizzaShackAPI: /pizzashack/1.0.0API,并针对它注册了一个默认应用程序。我可以(重新)为默认应用程序生成密钥,并使用此密钥调用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$输出中列出了以下内容:
[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服务造成的。
谢谢彼得
发布于 2017-05-13 11:29:36
您正在访问API的HTTPS url,您必须使用密钥库或使用-k选项抑制cURL中的SSL。
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' -k你也可以使用下面的HTTP URL的API,注意端口的区别。
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 00cb3832-f73f-3536-b287-4330a47ef4bd' 'http://192.168.1.9:8280/pizzashack/1.0.0/menu'https://stackoverflow.com/questions/43947544
复制相似问题