1.javax.net.ssl.SSLHandshakeException:
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
原因:服务器的证书不被信任。一般是这样造成的。
解决办法,
1.导入办法:
打开命令行窗口,并到<java-home>\lib\security\ 目录下,运行下面的命令:
keytool -import -noprompt -keystore cacerts -storepass changeit -alias yourEntry1 -file your.cer
最后一个是服务端导出的证书,其他可以默认。如果报名字错误,可以把alias名字改成别的
另外附带一下相关命令:
导入证书库
keytool -import -noprompt -keystore cacerts -storepass changeit -alias yourEntry1 -file your.cer
查看证书库
keytool -v -list -keystore cacerts -storepass changeit
删除
keytool -delete -alias yourEntry1 -keystore cacerts -storepass changeit
要注意的是,如果客户端电脑上装有许多个JAVA版本,要确定你导入的证书的JAVA版本是你TOMCAT使用的那个,一般TOMCAT使用的是环境变量指向的那个JAVA版本。
如果是在ECLIPSE中建立的TOMCAT服务器,新建时会要你选择默认JRE还是指向的JAVA,这里一定要选指向刚才导入的那个JAVA的路径,不然,你导入的证书库也没效果。
2.JAVA代码办法
//设置系统参数 System.setProperty("javax.net.ssl.trustStore", sslTrustStore); System.setProperty("javax.net.ssl.trustStorePassword",sslTrustStorePassword);
加的位置只要在发送数据前都可以。
另外注意的是,如果采用了上面的两种方法中的一种,还是报同样的错误,那么可以怀疑,证书本来是有问题的。
我们的项目就是用上面的方法后还是一直错误,结果才知道证书本来就有问题。解决办法就是换一个正确的证书。
2.redirect
重定向
表示发送数据的网址被重定向。原因一般是,很多系统在你访问一个链接时,会检查登录信息,没有则转向登录页面。当向服务端发送数据时,一般是没有登录信息的。那么就会被重定向到登录页面。解决办法是服务器对客户端发送的那个地址不验证登录信息。
3.java.net.SocketException: Connection reset
连接被重置。
一般是防火墙的原因。在SSL双向链接时,客户端没有向服务端提供证书信息,也会报这样的错。
4. java.security.NoSuchAlgorithmException
一般来说是密钥库类型不对,如上面的sslKeyStoreType = "JKS" 却写成PKCS12。
也有可能是证书的问题。
5. java.net.UnknownHostException
服务端地址不对。
6.java.net.SocketException: Unexpected end of file from server
这个异常说明数据已经发送成功。有可能服务端是防火墙的原因,没有处理客户端发来的数据。也有可能是客户端的数据不符合要求,服务端没有做出响应。数据不符合要求可能是传送的数据含有奇怪的字符。也有可能是两边编码不一致导致。客户端将字符串变成字节数据传送时需要指定编码格式,如str.getBytes("UTF-8");如不指定,可能导致上面的错误。另外有人说当URL过长时也会发生此错误,当使用URL发送数据时,可以参考此意见。
在我们与平安做接口时,碰到这个Unexpected end of file from server诡异的错误。但大致原因可以确定是服务端(平安)对我们发送过去的数据没有处理。具体的原因有下:
我们的系统是UTF-8编码的,他们是GBK编码的。编码不一致导致错误。另外传输消息时最好设定编码格式,如str.getBytes("UTF-8")。
但这样处理后还是出问题。那就是测试环境可以成功,而线上环境不能成功。查了很久也查不到原因,最后弄一个和测试环境一样的服务器,专门来放接口才解决问题。
对于最后这个问题,可能原因如下:
a. 线上环境做了某种限制,使证书信息不能发送出去。
b。线上环境的外网出口IP和测试环境外网出口IP不同。或许平安会将第一次发送证书时,IP和证书记住。如果下次IP和证书有一项不符合,则认为无效,不给回应。我们先在测试环境上发送成功,平安记住了IP和证书。然后在线上环境发送时,由于IP不同,平安认为证书无效,不给回应。
7.java.io.IOException:server returned HTTP response code :500
这个异常是服务端代码的问题。服务端相应代码执行时抛出了异常。
最后 如果返回的状态码是200 ,表示成功。
相关推荐
Go语言常见错误总结 Go语言是一种静态类型、编译型、并发型、垃圾回收的编程语言,由Google开发。随着Go语言的普及,越来越多的开发者开始使用Go语言进行开发。在开发过程中,开发者会遇到各种错误,以下是常见的Go...
本文档旨在指导用户如何在Windows环境下成功搭建HTTPS服务,并针对常见的错误进行分析与总结,以避免重复出现相同的问题。HTTPS协议相较于HTTP提供了更为安全的数据传输方式,通过加密传输数据,确保了数据在传输...
本文将详细介绍IIS的安装过程,并总结安装过程中可能遇到的常见错误及其解决方案。 一、IIS的安装 1. **开启Windows功能** - 在Windows Server或Windows 10系统中,打开“控制面板”或“设置”,选择“程序” > ...
### Java中Long与Integer比较易犯错误总结 #### 一、引言 在Java编程过程中,经常需要对数值进行比较操作。对于基本数据类型如`int`和`long`,可以直接使用`==`进行比较。然而,当涉及到它们的包装类`Integer`和`...
### 机器学习算法总结 #### 一、回归算法概述 回归算法是一类核心的机器学习技术,用于预测连续型变量的输出。这类算法的核心在于找到输入特征与目标变量之间的最佳数学关系,通常通过最小化预测值与实际观测值...
在日常的软件开发工作中,积累经验并进行总结是提升个人技能和团队效率的关键步骤。"日常开发的总结"这个主题涵盖了广泛的知识点,涉及到编程语言、设计模式、项目管理、版本控制、测试策略等多个方面。以下是对这些...
Java中的异常处理是通过try-catch-finally语句块来实现的,异常是一种特殊的对象,用于表示程序运行过程中的错误或非正常情况。内部类是嵌套在其他类内部的类,有成员内部类、局部内部类、匿名内部类和静态内部类四...
10. **最佳实践**:博主Rodey可能会分享他们在实际开发中的经验教训,提供一些最佳实践和避免常见错误的建议。 总的来说,这份报告是IT从业者学习和借鉴的一个宝贵资源,特别是对于从事会员服务系统设计和开发的...
总结,IE7和IE8中的https证书错误通常涉及证书的有效性、信任度和配置问题。解决这些问题需要对证书的生命周期管理、浏览器的证书信任设置以及服务器配置有深入理解。遵循上述步骤和建议,大部分证书错误问题都能...
当用户尝试访问以HTTPS开头的网址时,如果出现错误,可能是由于多种原因导致的,包括但不限于计算机设置问题、服务未启用、防火墙限制或系统组件损坏。 首先,要解决这个问题,可以尝试在浏览器的高级设置中启用SSL...
我们将讨论可能遇到的错误、原因以及解决方法。 首先,`HttpsURLConnection`是Java提供的一个类,用于通过HTTPS协议进行安全的HTTP通信。HTTPS是一种基于SSL/TLS协议的安全传输层,可以确保数据在传输过程中的安全...
标题中的“我的学习心得与总结”表明这是一份个人的学习笔记或者经验分享,可能是作者在IT领域的学习过程中...作者提到的"错误"可能指的是在学习过程中遇到的难题或理解误区,他期待同行的建议和指导以促进自身的成长。
以下是对Windows Server 2003服务器配置的一些关键知识点的总结,这些知识点对于解决.NET开发中遇到的问题至关重要。 1. **IIS配置**:IIS(Internet Information Services)是Windows Server 2003内置的Web服务器...
以下是对"常见Web应用安全问题总结文档"的详细解读: 1. **SQL注入**:这是一种常见的攻击方式,攻击者通过输入恶意的SQL代码,欺骗Web应用执行非预期的数据库操作。防范措施包括使用预编译的SQL语句、参数化查询,...
计算机网络基础知识总结的内容非常全面,涵盖了计算机网络中多个重要的知识点。我们逐一进行分析。 首先,文档提到了HTTP和HTTPS的区别,这是网络编程中常见的面试题目。HTTP协议运行在TCP之上,使用端口80进行通信...
所有CRC8,、CRC16,CRC32算法。详见《CRC8/CRC16/CRC32最全总结》https://blog.csdn.net/lianyunyouyou/article/details/107217125
### 使用TensorFlow的详细过程总结 #### TensorFlow环境安装与配置 **TensorFlow** 是一个开源的机器学习框架,被广泛应用于研究和生产环境中。对于初次接触TensorFlow的新手来说,安装配置过程可能会遇到不少挑战...
通过每天甚至更频繁地将代码集成到主干,可以尽早发现并修复潜在的冲突和错误,从而降低项目的整体风险。当新代码集成后,会自动部署到测试服务器,由测试团队对最新的代码进行测试。如果发现任何问题或bug,测试...
#### 四、总结 msxml3.dll 错误虽然令人困扰,但通过上述步骤,大多数情况下都能得到有效解决。关键是需要耐心地排查每一个可能的原因,并逐一尝试对应的解决方案。希望本文能帮助您解决遇到的问题。