我正在开发一个TCP客户端来连接OpenSSL服务器和证书认证。我使用了服务器团队共享的. crt和. key文件。这些证书是由OpenSSL命令生成的。
我使用SslStream
对象通过调用SslStream.AuthenticateAsClient
方法验证Tcp客户端,方法是传递服务器IP
、SslProtocols.Ssl3
和X509CertificateCollection
。
我收到以下错误:
身份验证失败,因为远程方已关闭传输流
我正在开发一个TCP客户端来连接OpenSSL服务器和证书认证。我使用了服务器团队共享的. crt和. key文件。这些证书是由OpenSSL命令生成的。
我使用SslStream
对象通过调用SslStream.AuthenticateAsClient
方法验证Tcp客户端,方法是传递服务器IP
、SslProtocols.Ssl3
和X509CertificateCollection
。
我收到以下错误:
身份验证失败,因为远程方已关闭传输流
9条答案
按热度按时间oxcyiej71#
我建议不要将安全协议限制为TLS 1.1。
建议的解决方案是使用
另一个选项是添加以下注册表项:
值得注意的是,.NET 4.6将默认使用正确的协议,并且不需要任何一种解决方案。
ojsjcaue2#
如果您想使用较旧版本的.net,请创建自己的标志并强制转换它。
v440hwme3#
添加下面的代码帮助我克服了这个问题。
xe55xuns4#
这对我很有效
1szpjjfi5#
我在使用ChargifyNET.dll与Chargify API通信时遇到了同样的错误消息。将
chargify.ProtocolType = SecurityProtocolType.Tls12;
添加到配置中为我解决了问题。下面是完整的代码片段:
jljoyd4f6#
对于VB.NET,您可以在Web请求之前放置以下内容:
这解决了我在.NET3.5上的安全问题。
3b6akqbq7#
当一个web请求端点被切换到另一个只接受TLS1.2请求的服务器时,我就遇到了这种情况。尝试了很多次,大多数都是在Stackoverflow上找到的,比如
1.注册表项,
1.增加:
System.Net.ServicePointManager.SecurityProtocol| =系统.网络.安全协议类型. Tls12;到环球. ASX OnStart
1.在Web.config中添加。
1.已将. Net框架更新至4.7.2,但仍出现相同的异常。
收到的例外没有公正地对待我所面临的实际问题,也没有从服务运营商那里找到任何帮助。
要解决这个问题,我必须添加一个新的密码套件TLS_DHE_RSA_WITH_AES_256_GCM_SHA384我使用了here中的IIS Crypto 2.0工具,如下所示。
xiozqbni8#
我在VS 2019中遇到了以下问题:
我已经添加了一个新的密码套件TLS_DHE_RSA_WITH_AES_256_GCM_SHA384作为FunMatters的解释。这也解决了我的问题。
lf5gs5x29#
在.NET框架4.8我添加了以下代码之前发送请求.