https请求出现sun.security.validator.ValidatorException: PKIX path building failed
百度了一下总体说来是安全证书的问题,ssl过期什么的
使用小米推送的SDK,人家SDK的底层使用了https的request,在我的电脑上运行没有问题,但是放在服务器上跑就出现问题了
对于https请求这一块确实不是很了解,求各位大神支招啊
代码是C#的,SDK是JAVA的,使用的ikvm将JAVA的包转成了dll使用
报错代码:
2016-10-13 16:35:01,421 [ERROR] java.io.IOException: Failed to send http request after 1 attempts: remote server c3.api.xmpush.xiaomi.com(123.125.102.38)
Exception javax.net.ssl.SSLHandshakeException : sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
sun.security.ssl.AlertsgetSSLException (Alerts.java:193)
sun.security.ssl.SSLSocketImplfatal (SSLSocketImpl.java:-1)
sun.security.ssl.HandshakerfatalSE (Handshaker.java:276)
sun.security.ssl.HandshakerfatalSE (Handshaker.java:270)
sun.security.ssl.ClientHandshakerserverCertificate (ClientHandshaker.java:1340)
sun.security.ssl.ClientHandshakerprocessMessage (ClientHandshaker.java:155)
sun.security.ssl.HandshakerprocessLoop (Handshaker.java:869)
sun.security.ssl.Handshakerprocess_record (Handshaker.java:806)
sun.security.ssl.SSLSocketImplreadRecord (SSLSocketImpl.java:1033)
sun.security.ssl.SSLSocketImplperformInitialHandshake (SSLSocketImpl.java:1328)
sun.security.ssl.SSLSocketImplstartHandshake (SSLSocketImpl.java:1355)
sun.security.ssl.SSLSocketImplstartHandshake (SSLSocketImpl.java:1339)
sun.net.www.protocol.https.HttpsClientafterConnect (HttpsClient.java:516)
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectionconnect (AbstractDelegateHttpsURLConnection.java:185)
sun.net.www.protocol.http.HttpURLConnectiongetOutputStream (HttpURLConnection.java:1092)
sun.net.www.protocol.https.HttpsURLConnectionImplgetOutputStream (HttpsURLConnectionImpl.java:250)
com.xiaomi.xmpush.server.HttpBasedoPost (HttpBase.java:195)
com.xiaomi.xmpush.server.HttpBase$1action (HttpBase.java:143)
com.xiaomi.xmpush.server.HttpBasehttpRequest (HttpBase.java:107)
com.xiaomi.xmpush.server.HttpBasedoPost (HttpBase.java:140)
com.xiaomi.xmpush.server.SendersendMessage (Sender.java:628)
com.xiaomi.xmpush.server.SendersendMessageNoRetry (Sender.java:459)
com.xiaomi.xmpush.server.SendersendToAliasNoRetry (Sender.java:266)
com.xiaomi.xmpush.server.SendersendToAlias (Sender.java:238)
com.xiaomi.xmpush.server.SendersendToAlias (Sender.java:215)
cli.Push.XiaoMi.XiaoMiPushSystempushMessageToApp (null:-1)
cli.PushTable.Program$$$003C$$003Ec__DisplayClass5<Main>b__0 (null:-1)