我公開了WSO2 ESB中的Identity Server UserProfileMgtService adminService。問題是,當我使用tryIt
功能來測試服務時,我得到一個SSL異常。當我通過SOAP UI在ESB中調用服務時也會發生這種情況。wso2 ESB和IS admin服務
這是例外:
[2012-09-14 16:32:21,003] ERROR - ClientHandler I/O error : Host name verification failed for host : localhost For : 127.0.0.1:9447 For Request : Axis2Request [Message ID : urn:uuid:d3797d1e-f21d-4b6a-aec9-075e95e982e6] [Status Completed : false] [Status SendingCompleted : true]
javax.net.ssl.SSLException: Host name verification failed for host : localhost
at org.apache.synapse.transport.nhttp.HttpCoreNIOSSLSender$1.verify(HttpCoreNIOSSLSender.java:310)
at org.apache.http.impl.nio.reactor.SSLIOSessionHandlerAdaptor.verify(SSLIOSessionHandlerAdaptor.java:52)
at org.apache.http.impl.nio.reactor.SSLIOSession.doHandshake(SSLIOSession.java:186)
at org.apache.http.impl.nio.reactor.SSLIOSession.outboundTransport(SSLIOSession.java:292)
at org.apache.http.impl.nio.SSLClientIOEventDispatch.outputReady(SSLClientIOEventDispatch.java:249)
at org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:179)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:344)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:318)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:278)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:542)
at java.lang.Thread.run(Thread.java:662)
[2012-09-14 16:32:21,005] WARN - EndpointContext Endpoint : endpoint_b058e35b0fa1f0f58569defe4fb9d4838eadea9b6abd4d36 will be marked SUSPENDED as it failed
[2012-09-14 16:32:21,006] WARN - EndpointContext Suspending endpoint : endpoint_b058e35b0fa1f0f58569defe4fb9d4838eadea9b6abd4d36 - last suspend duration was : 30000ms and current suspend duration is : 30000ms - Next retry after : Fri Sep 14 16:32:51 EEST 2012
我使用自簽名的證書,但我已經相應地修改了wso2carbon.jks和客戶truststore.jks使他們有證書與本地主機CN以及我的自簽證書有不同的CN。我正在使用localhost作爲IS端點。什麼會導致這種異常?有沒有一種更簡單的方法來在ESB中映射IS管理服務。
說明性
所有的服務器都有自己簽署的CN證書:ip-xx-xx-xxx-xx.xx.something.com。
我的身份服務器在localhost上運行:9447 /並且我想通過ESB運行的服務是localhost:9447/services/UserProfileMgtService?wsdl。
的ESB是在localhost:9447/
我已經在其中在axis2.xml定義HTTPS傳輸發送者的配置設置設定參數至AllowAll和我還設置HideAdminServiceWSDLs爲false。
我可以通過瀏覽器訪問localhost:9447/services/UserProfileMgtService?wsdl,但是如果我在publishWsdl選項中的ESB中提供它,則表示它無法連接到該服務。如果我將其定義爲自定義代理,則會引發上述異常。
在SOAP UI中,我給ESB中只有mediate()方法的代理服務的WSDL,我猜這是因爲ESB無法連接到端點wsdl。
什麼是服務器證書的CN?這是由於主機名稱和CN – SureshAtt
的不匹配所致。如果這就是您的意思,那麼CN不是本地主機,並且我正在展示像Ratha發佈的示例那樣的服務。所以我想這是問題所在。但我不知道我該如何解決它。使用ESB的truststore中的CN localhost添加另一個證書? – Ivo