0

I'm trying to upgrade from BouncyCastle bcprov-jdk14-124.jar (oooold) to bcprov-jdk14-143.jar. When I replace the old jar with the new jar and build everything, my software will no longer establish an SSL connection, failing with a javax.net.ssl.SSLException: Received fatal alert: illegal_parameter. Googling for "bouncycastle javax.net.ssl.SSLException illegal_parameter" yields a whopping 4 results.

Any suggestions on where to start debugging this?

Additional context:

  • client is on WinXP
  • server on CentOS, using Oracle Application Server
  • The client is attempting to establish an SSL connection for an AXIS2 POST.
  • When the server uses bcprov-jdk14-143 and the client uses bcprov-jdk14-124, the POST succeeds, but when the client is upgraded to 143, I get this error
4

1 回答 1

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 方法的列表。

于 2009-08-16T00:12:03.660 回答