java - 在 ServerHelloDone 之后不会发生 ClientKeyExchange
问题描述
我有两台笔记本电脑在它们上面运行相同的项目。两个实例都配置为使用 Java JDK 6(相同的次要版本)。但是,一台机器无法连接到远程 REST 服务。通过使用-Djavax.net.debug=all
选项运行应用程序,我得出结论,问题出在ClientKeyExchange步骤上,因为此步骤不会发生在有问题的笔记本电脑上。
IBM 开发人员社区中的一篇帖子表明“正在使用的硬件加密设备不在受支持的列表中”。但是我对“硬件加密设备”一无所知。
-Djavax.net.debug=all
我能说的是,两台机器上打印的“启用密码套件”、“排除密码套件”、“密码套件已设置为”列表是相同的。
使用 JDK 证书。
解决方案
找到了解决方案。项目正在使用 JAX-RS,因此对外部服务的调用是通过该框架发生的,因此我无法解决问题,因为没有错误。所以我尝试了不同的方法:尝试使用javax.net.ssl.HttpsURLConnection
向我展示的 simple 访问服务java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b
,因此我更改了我的local_policy.jar
和US_export_policy.jar
文件(感谢 @Charlie无法初始化类 javax.crypto.SunJCE_b)
我想我已经在第一台笔记本电脑上更改了策略 jar,而忘记在新笔记本电脑上执行此操作。
推荐阅读
- python - 如何将n维数组除以维度中的第一个值
- c++ - O(N^2) 时间内的回文分区问题
- javascript - 无法解决:将对象数组映射到按钮元素(React)
- java - 为什么 Hibernate 将我的批量插入拆分为 3 个查询
- wordpress - 致命错误:使用命名空间时找不到类“WC_Settings_Page”
- javascript - Google Maps Directions Service,如何等待所有请求完成?
- html - 如何找到元素的完整类名?
- google-chrome - 从公共网站的超集显示 iframe 下的图表时出错,错误表示 CSRF 令牌不匹配
- h5py - 为什么读取 h5 文件非常慢?
- c++ - 在 C++ 向量中存储指针时出错