首页 > 解决方案 > 在 ServerHelloDone 之后不会发生 ClientKeyExchange

问题描述

我有两台笔记本电脑在它们上面运行相同的项目。两个实例都配置为使用 Java JDK 6(相同的次要版本)。但是,一台机器无法连接到远程 REST 服务。通过使用-Djavax.net.debug=all选项运行应用程序,我得出结论,问题出在ClientKeyExchange步骤上,因为此步骤不会发生在有问题的笔记本电脑上。

IBM 开发人员社区中的一篇帖子表明“正在使用的硬件加密设备不在受支持的列表中”。但是我对“硬件加密设备”一无所知。

-Djavax.net.debug=all我能说的是,两台机器上打印的“启用密码套件”、“排除密码套件”、“密码套件已设置为”列表是相同的。

使用 JDK 证书。

标签: javassl

解决方案


找到了解决方案。项目正在使用 JAX-RS,因此对外部服务的调用是通过该框架发生的,因此我无法解决问题,因为没有错误。所以我尝试了不同的方法:尝试使用javax.net.ssl.HttpsURLConnection向我展示的 simple 访问服务java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b,因此我更改了我的local_policy.jarUS_export_policy.jar文件(感谢 @Charlie无法初始化类 javax.crypto.SunJCE_b

我想我已经在第一台笔记本电脑上更改了策略 jar,而忘记在新笔记本电脑上执行此操作。


推荐阅读