Javax.net.ssl.SSLHandShakeException:没有适当的协议(IKVM dll)

时间:2020-01-22 20:52:09

标签: java c# ssl sslhandshakeexception ikvm

您好,我遇到了有关连接Java服务器的问题。我们想脱离Java并转而使用C#实现,但是不幸的是,我们严重依赖于第三方Java库。

为了迈向C#应用程序,我将jar文件转换为一个dll,我曾经使用IKVM在C#应用程序中引用该dll。一切似乎正常,对象已正确初始化,但是当我尝试调用将建立连接的java方法时,会收到上述异常。

从我的C#应用​​程序中调用java的javax.net.ssl getSupportedCipherSuites显示不支持连接所需的密码。但是,当运行相同的代码但这次使用Java编写时,将显示相应的套件。我相信这就是握手失败的原因,但是不确定如何使C#应用程序支持指定的密码。

我正在使用.NET Framework 4.8。我尝试设置 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

但似乎没有做任何事情。

有人知道什么会导致Java和C#支持的密码套件之间的差异吗?

1 个答案:

答案 0 :(得分:0)

我通过添加安全提供程序解决了这个问题。原来第三方库正在使用BouncyCastle。

添加了行 java.security.Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());,一切正常!

相关问题