`
Blackbaby
  • 浏览: 183855 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

在使用JSSE的时候应注意的问题

    博客分类:
  • java
阅读更多

在用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定制SSL

    **JSSE(Java Secure Socket Extension)是Java平台中用于实现安全网络通信的API,它提供了SSL(Secure Sockets Layer)和TLS(Transport Layer...在实际操作中,应结合具体的应用场景和安全策略进行细致的调整和测试。

    直接通过Socket使用JSSE

    在Java编程环境中,Java Secure Socket Extension (JSSE) 是一个重要的安全组件,它提供了实现安全套接层(SSL)和传输层安全(TLS)协议的API。这些协议用于加密网络通信,确保数据在网络中传输时的隐私和完整性,...

    tomcat,https加密方式(jsse.openssl)

    需要注意的是,这一步可以省略,Tomcat 在启动时会自动加载证书,但可能会导致启动时间稍长。 ##### 3. 配置 Tomcat 的 server.xml 文件 接下来,需要修改 Tomcat 的 `server.xml` 文件,添加 SSL Connector 的...

    jsse-2.0.5.jar.zip

    这个错误是查询不到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

    jsse.jar

    jsse.jar 用于jsse.jar

    jar网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|版权声明|问题报告

    为高级 JSSE 开发人员定制 SSL

    1. **KeyStores和TrustStores**:JSSE使用KeyStore存储私钥和证书,用于身份验证;TrustStore则存储信任的CA证书或服务器证书,用于验证对方的身份。开发者可以通过系统属性`javax.net.ssl.keyStore`和`javax.net....

    jsse工具包.rar

    与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何...

    jre包jsse.jar jce.jar dnsns.jar charsets.jar的源码

    主要是在源码网站上抓取的jsse.jar jce.jar dnsns.jar charsets.jar源代码。 其中附上抓取的源代码,可以自己修改相应的参数,实现自定义下载。 因为写的匆忙,因此没有加上多线程,欢迎修改交流。

    用JSSE定制SSL连接.docx

    在使用JSSE进行开发之前,需要配置几个关键的文件:KeyStore和TrustStore。 ##### KeyStore KeyStore用于存储私钥和证书链,是客户端或服务器身份验证的基础。 - **客户端KeyStore**:包含客户端的私钥及其对应的...

    jsp-api-2.1.jar+servlet-api-2.5-6.1.9.jar+jsse.jar

    在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-samples-guides.zip

    本指南将深入探讨JSSE提供的功能、用途以及如何在实际项目中应用这些安全机制。`jsse-samples-guides.zip`文件包含了关于Java SSL技术的示例和指南,这将帮助开发者更好地理解和使用JSSE。 首先,让我们理解SSL和...

    gm-jsse:开源国密通信纯 Java JSSE 实现

    通用JSSE 要求 JDK 1.7或更高版本。 安装 < groupId>com.aliyun</ groupId> < artifactId>gmsse < version>{{see the version on the badge}} 用法 import javax.net.ssl.HttpsURLConnection ; import javax...

    jdk7源代码(内含jsse源代码)

    在Java开发过程中,深入理解JDK源代码是解决性能问题和优化代码的关键步骤。本压缩包包含的是JDK7版本的源代码,其中特别提到了JSSE(Java Secure Socket Extension)部分,这对于处理网络通信尤其是涉及SSL/TLS安全...

    大宝CA版本的国密SSL规范实现,JSSE,1.0.1版本,含通信示例代码

    使用方法见:https://blog.csdn.net/upset_ming/article/details/87872381 1. 修改了前一版本中证书验证的bug,支持JDK8的高版本 2. 适配了一些硬件设备和国密浏览器 3. 支持国密SSL双向认证 4. 将过期的国密...

    完整jar包资源,COULD NOT FIND jcommander,包缺失使用

    标题中的"完整jar包资源,COULD NOT FIND jcommander,包缺失使用"揭示了一个常见的问题,即开发者在构建项目时遇到了缺少依赖的问题。`jcommander`是一个Java库,用于命令行参数解析,它简化了从命令行参数中提取和...

    sun.security.provider不存在 jsse.jar包

    sun.security.provider不存在

    wolfssl-jsse-integration:Wolfssl wolfssl-jni的JSSE API集成(http

    请不要在生产环境中使用该项目,因为它是研究原型!!! 安装步骤: 克隆存储库 请遵循wolfSSL手册来安装JNI库( )。 因此,编译并安装wolfSSL。 我们使用wolfSSL 3.6.9构建我们的库。 然后,编译并安装wolfSSL ...

Global site tag (gtag.js) - Google Analytics