javax.net.ssl.SSLException illegal_parameter bouncycastle有关吗?

时间:2009-08-15 20:15:38

标签: java exception ssl bouncycastle

我正在尝试从BouncyCastle bcprov-jdk14-124.jar(oooold)升级到bcprov-jdk14-143.jar。当我用新jar替换旧jar并构建所有内容时,我的软件将不再建立SSL连接,使用javax.net.ssl.SSLException: Received fatal alert: illegal_parameter失败。谷歌搜索“bouncycastle javax.net.ssl.SSLException illegal_parameter”产生了惊人的4个结果。

有关从何处开始调试的建议?

附加背景:

  • 客户端在WinXP上
  • 使用Oracle应用服务器在CentOS上的
  • 服务器
  • 客户端正在尝试为AXIS2 POST建立SSL连接。
  • 当服务器使用bcprov-jdk14-143且客户端使用bcprov-jdk14-124时,POST成功,但当客户端升级到143时,我收到此错误

1 个答案:

答案 0 :(得分:1)

我对你的设置有点困惑。您的错误来自JSSE,但BC不提供JSSE。我假设错误来自服务器,它使用SunJSSE。您可能使用来自客户端的BC的TLS API来建立TLS连接(检查您是否有TlsProtocolHandler)。

如果是这种情况,让一切正常工作已经是Java 1.4的奇迹,我不会升级任何东西。在Java 5之前,Sun的JSSE部分硬连接到SunJCE,因此您实际上在服务器上同时使用2个JCE。之前我和BC一起玩TLS,我从来没有让它工作,所以你远远超过我:)

为什么需要升级BC?在我看来,如果您使用的是Java 1.4或更高版本,则根本没有理由使用BC。但是,如果您使用TlsProtocolHandler,则需要更改代码才能将其删除。

特定错误是由服务器发送压缩方法列表引起的。没有办法解决这个问题。没有人支持压缩,但它们都只发送一个只有Null方法的列表。