certchaincpi是什么意思

6497人阅读
J2EE(30)
最近做一个项目,需要使用https进行访问,一直报错,
[ERROR] [ConnectUtils.java:171] [ 10:35:32] - 与服务器交互发生异常~
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1731)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:925)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:637)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:89)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at mons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:506)
at mons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
at mons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
at mons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at mons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at mons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at mons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at com.sinitek.sfm.trade.utils.ConnectUtils.connect(ConnectUtils.java:152)
at com.sinitek.sfm.trade.utils.ConnectUtils.postProps(ConnectUtils.java:134)
at com.sinitek.sfm.trade.hs.HsDsApi.callHsApi(HsDsApi.java:79)
at com.sinitek.sfm.trade.chinatele.utils.HsCommonAPi.login(HsCommonAPi.java:70)
at com.sinitek.sfm.trade.chinatele.UserLoginAction.login(UserLoginAction.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at mons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
at mons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:198)
at com.sinitek.wildwolf.support.MethodInvocationUtil.invokeMethod(MethodInvocationUtil.java:50)
at com.sinitek.wildwolf.support.AbstractDispatchAction.execute(AbstractDispatchAction.java:43)
at com.sinitek.wildwolf.kernel.WildWolfKernel.onRequest(WildWolfKernel.java:174)
at com.sinitek.wildwolf.web.WildWolfServlet.service(WildWolfServlet.java:82)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.sinitek.sfm.useractlog.core.web.URLLogFilter.doFilter(URLLogFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:289)
at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:263)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:184)
at sun.security.validator.Validator.validate(Validator.java:218)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185)
... 51 more
Caused by: java.security.cert.CertPathValidatorException: timestamp check failed
at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:139)
at sun.security.provider.certpath.PKIXCertPathValidator.doValidate(PKIXCertPathValidator.java:328)
at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:178)
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:250)
at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:275)
... 58 more
Caused by: java.security.cert.CertificateExpiredException: NotAfter: Tue Apr 03 07:59:59 CST 2012
at sun.security.x509.CertificateValidity.valid(CertificateValidity.java:256)
at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:570)
at sun.security.provider.certpath.BasicChecker.verifyTimestamp(BasicChecker.java:157)
at sun.security.provider.certpath.BasicChecker.check(BasicChecker.java:109)
at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:117)
... 62 more
这个是因为证书过时导致的!
解决办法找到2个:
第一个是:
import com.ausky.utils.EasySSLProtocolSocketF
import junit.framework.TestC
import mons.httpclient.HostC
import mons.httpclient.HttpC
import mons.httpclient.methods.PostM
import mons.httpclient.params.HttpMethodP
import mons.httpclient.protocol.P
import java.io.BufferedR
import java.io.InputS
import java.io.InputStreamR
* Created with IntelliJ IDEA.
* User: xn-hyao-01
* Date: 14-1-26
* Time: 下午1:54
* To change this template use File | Settings | File Templates.
public class Test extends TestCase {
public static void main(String[] args) {
HttpClient client = new HttpClient();
Protocol easyHttps1 = new Protocol(&https&, new EasySSLProtocolSocketFactory(), 443);
Protocol.registerProtocol(&https&, easyHttps1);
HostConfiguration hc = new HostConfiguration();
hc.setHost(&127.0.0.1&, 80, easyHttps1);
String url = &https://localhost:8080/&;
PostMethod method = new PostMethod(url);
method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, &utf-8&);
int t = client.executeMethod(hc, method);
InputStream is = method.getResponseBodyAsStream();
BufferedReader br = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), &utf-8&));
StringBuffer response = new StringBuffer();
String readL
while (((readLine = br.readLine()) != null)) {
response.append(readLine);
System.out.print(response);
System.out.print(t);
} catch (Exception e) {
System.out.print(e);
上面的方法 有一点不好&& new Protocal (deprecated)不建议使用了!
第二个办法就是:
自己去写一个假的 安全验证
private static class TrustAnyTrustManager implements X509TrustManager
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException
public X509Certificate[] getAcceptedIssuers()
return new X509Certificate[]{};
private static class TrustAnyHostnameVerifier implements HostnameVerifier
public boolean verify(String hostname, SSLSession session)
public static String connect(String url) throws Exception
InputStream in =
OutputStream out =
byte[] buffer = new byte[4096];
String str_return = &&;
URL console = new URL(url);
URL console = new URL(new String(url.getBytes(&utf-8&)));
HttpURLConnection conn = (HttpURLConnection) console.openConnection();
//如果是https
if (conn instanceof HttpsURLConnection)
SSLContext sc = SSLContext.getInstance(&SSL&);
sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
((HttpsURLConnection) conn).setSSLSocketFactory(sc.getSocketFactory());
((HttpsURLConnection) conn).setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setRequestProperty(&Content-type&, &text/html&);
conn.setRequestProperty(&Accept-Charset&, &GBK&);
conn.setRequestProperty(&contentType&, &GBK&);
conn.setRequestMethod(&POST&);
conn.setDoOutput(true);
conn.setRequestProperty(&User-Agent&, &directclient&);
PrintWriter outdate = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),&utf-8&));
outdate.println(url);
outdate.close();
conn.connect();
InputStream is = conn.getInputStream();
DataInputStream indata = new DataInputStream(is);
String ret = &&;
while (ret != null)
ret = indata.readLine();
if (ret != null && !ret.trim().equals(&&))
str_return = str_return + new String(ret.getBytes(&ISO-8859-1&), &utf-8&);
conn.disconnect();
} catch (Exception e)
in.close();
} catch (Exception e)
out.close();
} catch (Exception e)
return str_
第一种方法是 我自己网上找的 ,暂时用的就是这个,忽然 发现我们项目中存在第二种方法,竟然已经没人用,且没人知道,好蛋疼!

参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:103082次
积分:1477
积分:1477
排名:第19173名
原创:45篇
转载:27篇
评论:26条
(2)(1)(2)(1)(2)(3)(1)(2)(1)(8)(1)(1)(3)(4)(1)(9)(2)(3)(1)(6)(1)(2)(2)(2)(4)(1)(7)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&Java Server 由于ssl握手失败导致 server死循环的问题~请各位支招~
[问题点数:40分]
Java Server 由于ssl握手失败导致 server死循环的问题~请各位支招~
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。已有天涯账号?
这里是所提的问题,您需要登录才能参与回答。
"天涯问答"是天涯社区旗下的问题分享平台。在这里您可以提问,回答感兴趣的问题,分享知识和经历,无论您在何时何地上线都可以访问,此平台完全免费,而且注册非常简单。
certchain是什么程序
certchain是什么程序
09-08-09 &匿名提问 发布
在Windows的安装过程中将产生返回脚本(rollback scriptS)以实现返回功能。在这些文件中包含了已执行的操作序列,文件和注册表的更新信息以及其他操作信息。脚本文件包括*.rbf 和*.rbs 两种。其中*.rbf文件是已有文件的备份文件,它们存储在config.msi 文件夹中,而config.msi 则包含在操作系统所在的驱动器中。当操作系统安装成功结束后,所有的返回脚本文件都将被删除。如果安装文件不能删除config.msi文件夹,可以Windows Exploer 中将其手动删除。
请登录后再发表评论!}

我要回帖

更多关于 今年是什么年 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信