繁体   English   中英

客户端证书不是由.Net App使用TLS1.2发送的

[英]Client certificate is not sent by .Net App using TLS1.2

我有一个.NET C#应用程序,该应用程序使用2-way SSL(客户端证书)进行身份验证,连接到远程soap Web服务。 该应用程序在Windows Server 2008 R2系统上的IIS 7.5上运行。 已安装Internet Explorer 11。

由于以下注册表项是由我们的IT部门设置的,因此远程服务器会返回一条错误消息,指出我们的客户端未提供证书。 HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ .NETFramework \\ v4.0.30319“ SchUseStrongCrypto” = dword:00000001

直到我在Advances属性中禁用TLSv1.2之前,IE都存在相同的问题。 Firefox和Chrome均可使用。

套件的远程服务器优选顺序配置如下:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xc027)TLS_RSA_WITH_AES_128_GCM_SHA256(为0x9c)TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xc030)TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xc028)TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xc014)

我进行了wireshark跟踪,以查看浏览器和.NET应用程序与服务器进行协商的密码套件。 看起来像.NET应用程序,还激活TLSv1.2的IE协商TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,而Firefox和Chrome协商TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384。

有谁知道为什么2向ssl握手可以与套件Firefox和chrome一起使用,却不能与套件IE和.Net应用程序一起使用。

这是远程服务器配置上的问题,还是Windows / .Net Framework问题?

为什么IE和.Net Framework不遵守服务器的首选顺序?

提前非常感谢您。

-威利

根据您的描述,我猜想在TLS 1.2握手期间存在问题。 可能的原因可能是证书链中的至少一个证书使用Md5作为其哈希算法。

在这种情况下,您需要使用公认的哈希算法来交换另一个证书。

检查以下链接以获取更多说明:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM