SSL连接报错:javax.net.ssl.SSLHandshakeException

在使用Socket SSL双向连接时,客户端可以连接上服务端,

但传输数据时报错javax.net.ssl.SSLHandshakeException: null cert chain

原因是使用的KeyStore文件不对

首先创建服务器端私有密钥和公共密钥
1, keytool -genkey -alias serverkey -keystore kserver.ks
2, keytool -export -alias serverkey -keystore kserver.ks -file server.crt
3, keytool -import -alias serverkey -file server.crt -keystore tclient.ks

下面创建客户器端私有密钥和公共密钥
1, keytool -genkey -alias clientkey -keystore kclient.ks
2, keytool -export -alias clientkey -keystore kclient.ks -file client.crt
3, keytool -import -alias clientkey -file client.crt -keystore tserver.ks

通过以上方式生成的密钥文件,server端应使用kserver.ks和tserver.ks,client端应使用kclient.ks和tclient.ks

转载于:https://my.oschina.net/u/2267612/blog/1973474

javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SSL连接时发生。这个异常可能是由多种原因引起的,比如证书问题、协议版本不兼容、密钥交换失败等。根据引用提供的解决方案,可能可以尝试以下步骤来解决该异常。 1. 首先,检查你的证书是否有效,确保证书链上的所有证书都是可信的。如果证书无效或不可信,可以尝试更新或更换证书。 2. 检查服务器和客户端之间的SSL协议版本是否兼容。如果协议版本不匹配,可以尝试调整SSL协议版本来解决问题。 3. 检查密钥交换算法是否正确配置。密钥交换是SSL握手的一个关键步骤,确保服务器和客户端可以正确交换密钥。 4. 如果以上步骤都不能解决问题,可以尝试添加自定义的主机认证和信任管理器来处理SSL握手。根据引用中提供的代码示例,在HttpSendUtils.java文件中添加相关代码,包括配置认证管理器和激活主机认证。 需要注意的是,以上步骤只是一些常见的解决方案,具体解决方法可能因具体情况而异。建议根据具体错误信息和日志来进行排查和调试,以找到准确的解决方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure的一个解决方案-附件资源](https://download.csdn.net/download/weixin_42200791/15591143)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [解决 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path build...](https://blog.csdn.net/chaishen10000/article/details/82992291)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SSL证书认证失败javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: 解决...](https://blog.csdn.net/qq_40315210/article/details/102503946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值