在用SSL立连接,但总是提示握手失败,对方关闭连接。
avax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at ssl.HTTPSClient.main(HTTPSClient.java:31)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
... 4 more
后来在网上找到是如下原因:
SSLContext.getInstance("TSLv1");(此处用于指定安全协议)
得到的SSLContext再生成SSLSocketFactory再得到SSLSocket。
而此时的SSLSocket支持SSL的多个版本,所以需要用
SSLSocket.setEnabledProtocols(String[] protocols)指定协议版本,(此处才指定协议版本)
如果缺少这步,在握手时会采用缺省的SSLv2。
原文地址:http://www.eclipseworld.org/bbs/read-cec-tid-9268.html
分享到:
相关推荐
**JSSE(Java Secure Socket Extension)是Java平台中用于实现安全网络通信的API,它提供了SSL(Secure Sockets Layer)和TLS(Transport Layer...在实际操作中,应结合具体的应用场景和安全策略进行细致的调整和测试。
在Java编程环境中,Java Secure Socket Extension (JSSE) 是一个重要的安全组件,它提供了实现安全套接层(SSL)和传输层安全(TLS)协议的API。这些协议用于加密网络通信,确保数据在网络中传输时的隐私和完整性,...
需要注意的是,这一步可以省略,Tomcat 在启动时会自动加载证书,但可能会导致启动时间稍长。 ##### 3. 配置 Tomcat 的 server.xml 文件 接下来,需要修改 Tomcat 的 `server.xml` 文件,添加 SSL Connector 的...
这个错误是查询不到SHA算法,这个算法是在jre下面,查询不到就错误了,缺少jsse.jar。 ls -al /usr/java/jdk1.8.0_171-amd64/jre/lib/jss* 处理过程: cd /usr/java/jdk1.8.0_171-amd64/jre/lib unpack200 jsse.pack...
jsse.jar
jar网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|版权声明|问题报告
1. **KeyStores和TrustStores**:JSSE使用KeyStore存储私钥和证书,用于身份验证;TrustStore则存储信任的CA证书或服务器证书,用于验证对方的身份。开发者可以通过系统属性`javax.net.ssl.keyStore`和`javax.net....
与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何...
主要是在源码网站上抓取的jsse.jar jce.jar dnsns.jar charsets.jar源代码。 其中附上抓取的源代码,可以自己修改相应的参数,实现自定义下载。 因为写的匆忙,因此没有加上多线程,欢迎修改交流。
在使用JSSE进行开发之前,需要配置几个关键的文件:KeyStore和TrustStore。 ##### KeyStore KeyStore用于存储私钥和证书链,是客户端或服务器身份验证的基础。 - **客户端KeyStore**:包含客户端的私钥及其对应的...
在Java Web开发中,`jsp-api-2.1.jar`、`servlet-api-2.5-6.1.9.jar` 和 `jsse.jar` 是三个非常关键的库文件,它们分别对应了JSP(JavaServer Pages)、Servlet和JSSE(Java Secure Socket Extension)的核心功能。...
本指南将深入探讨JSSE提供的功能、用途以及如何在实际项目中应用这些安全机制。`jsse-samples-guides.zip`文件包含了关于Java SSL技术的示例和指南,这将帮助开发者更好地理解和使用JSSE。 首先,让我们理解SSL和...
通用JSSE 要求 JDK 1.7或更高版本。 安装 < groupId>com.aliyun</ groupId> < artifactId>gmsse < version>{{see the version on the badge}} 用法 import javax.net.ssl.HttpsURLConnection ; import javax...
在Java开发过程中,深入理解JDK源代码是解决性能问题和优化代码的关键步骤。本压缩包包含的是JDK7版本的源代码,其中特别提到了JSSE(Java Secure Socket Extension)部分,这对于处理网络通信尤其是涉及SSL/TLS安全...
使用方法见:https://blog.csdn.net/upset_ming/article/details/87872381 1. 修改了前一版本中证书验证的bug,支持JDK8的高版本 2. 适配了一些硬件设备和国密浏览器 3. 支持国密SSL双向认证 4. 将过期的国密...
标题中的"完整jar包资源,COULD NOT FIND jcommander,包缺失使用"揭示了一个常见的问题,即开发者在构建项目时遇到了缺少依赖的问题。`jcommander`是一个Java库,用于命令行参数解析,它简化了从命令行参数中提取和...
sun.security.provider不存在
请不要在生产环境中使用该项目,因为它是研究原型!!! 安装步骤: 克隆存储库 请遵循wolfSSL手册来安装JNI库( )。 因此,编译并安装wolfSSL。 我们使用wolfSSL 3.6.9构建我们的库。 然后,编译并安装wolfSSL ...