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

问题描述 投票:0回答:1

您好,我遇到了有关连接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#支持的密码套件之间的差异吗?

java c# ssl sslhandshakeexception ikvm
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.