2017-05-12 29 views
1

剛剛開始使用wso2-am。我發佈了示例PizzaShackAPI:/pizzashack/1.0.0 API並針對它註冊了一個默認應用程序。我可以(重新)爲默認應用程序生成密鑰,因此,我可以調用例如API控制檯中的GET /菜單項。只要訪問令牌有效,這就給我預期的列表。捲髮使用wso2-am示例api

然而,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' 

我運行這個窗口(捲曲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服務引起的。

感謝彼得

回答

0

您正在訪問HTTPS的API的網址,你必須要麼使用一個密鑰或抑制捲曲的SSL與-k選項

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' 
+0

嗨Abimaran,非常感謝您的反饋。我會嘗試你的建議。正如我前面所指出的,我剛剛開始用ws02-am。所以這種情況可能會進一步描述,但密鑰庫需要包含什麼以便能夠在ws02-am API控制檯屏幕之外使用SSL進行此示例API調用? (或者你可以提供一個鏈接到文檔)?謝謝彼得 – user3665510