https请求出现sun.security.validator.ValidatorException: PKIX path building failed

造物主在胃中 2016-10-13 06:31:30
百度了一下总体说来是安全证书的问题,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)
...全文
5863 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
造物主在胃中 2016-11-25
  • 打赏
  • 举报
回复
引用 1 楼 qq_36724005 的回复:
您好 请问你解决了吗? 我也出现相同问题,也是用ikvm转的,麻烦指教下。 小米推送异常类名-AMSSvr.Common.WorkFlow.SqlWorkFlowRecordDB 方法-SendAppMessage 【异常】java.io.IOException: Failed to send http request after 3 attempts: remote server lg.api.xmpush.xiaomi.com(114.54.23.61) 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:192) sun.security.ssl.SSLSocketImplfatal (SSLSocketImpl.java:1902) sun.security.ssl.HandshakerfatalSE (Handshaker.java:276) sun.security.ssl.HandshakerfatalSE (Handshaker.java:271) 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:804) sun.security.ssl.SSLSocketImplreadRecord (SSLSocketImpl.java:1033) sun.security.ssl.SSLSocketImplperformInitialHandshake (SSLSocketImpl.java:1329) sun.security.ssl.SSLSocketImplstartHandshake (SSLSocketImpl.java:1355) sun.security.ssl.SSLSocketImplstartHandshake (SSLSocketImpl.java:1340) sun.net.www.protocol.https.HttpsClientafterConnect (HttpsClient.java:516) sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectionconnect (AbstractDelegateHttpsURLConnection.java:186) 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) cli.AMSSvr.Commom.PushService.MiPushService.SendManagerSendToAlias (null:-1) cli.AMSSvr.Common.WorkFlow.SqlWorkFlowRecordDBSendAppMessage (null:-1) ull:-1)
不好意思,这么久才看到,这个问题是安全证书的问题,你吧报错里这个小米API地址复制到服务器的浏览器中,然后找到下载证书的选项,ie浏览器为页签栏右侧 页面、安全、工具按钮中的安全按钮,点开之后应该会有一个可以点击的安全报告,点击安全报告之后会有一个安装证书 安装证书之后就好了
qq_36724005 2016-11-16
  • 打赏
  • 举报
回复
您好 请问你解决了吗? 我也出现相同问题,也是用ikvm转的,麻烦指教下。 小米推送异常类名-AMSSvr.Common.WorkFlow.SqlWorkFlowRecordDB 方法-SendAppMessage 【异常】java.io.IOException: Failed to send http request after 3 attempts: remote server lg.api.xmpush.xiaomi.com(114.54.23.61) 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:192) sun.security.ssl.SSLSocketImplfatal (SSLSocketImpl.java:1902) sun.security.ssl.HandshakerfatalSE (Handshaker.java:276) sun.security.ssl.HandshakerfatalSE (Handshaker.java:271) 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:804) sun.security.ssl.SSLSocketImplreadRecord (SSLSocketImpl.java:1033) sun.security.ssl.SSLSocketImplperformInitialHandshake (SSLSocketImpl.java:1329) sun.security.ssl.SSLSocketImplstartHandshake (SSLSocketImpl.java:1355) sun.security.ssl.SSLSocketImplstartHandshake (SSLSocketImpl.java:1340) sun.net.www.protocol.https.HttpsClientafterConnect (HttpsClient.java:516) sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectionconnect (AbstractDelegateHttpsURLConnection.java:186) 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) cli.AMSSvr.Commom.PushService.MiPushService.SendManagerSendToAlias (null:-1) cli.AMSSvr.Common.WorkFlow.SqlWorkFlowRecordDBSendAppMessage (null:-1) ull:-1)

8,329

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 IIS
社区管理员
  • IIS
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧