Windows Server 2012R2 – >受信任的根CA存储(本地计算机)未列在SERVER HELLO / CERTIFICATE请求TLS1.2握手

我公司开发了一个基于.NET的应用程序(依靠SChannel),目的是在TLS1.2双向authentication会话中,在同一个SW的两个实例(一个作为客户端,另一个作为服务器)之间执行TLS1.2双向authentication。

客户端和服务器的SW实例都部署在不同的Windows OS服务器(2008R2和2012R2)上。

我们已经成功testing了Windows Server 2008 R2操作系统上的应用程序(在WIN 2008R2操作系统上运行的“客户”和“服务器”SW实例); 在这种情况下,服务器在“证书请求”部分下的TLS1.2握手的初始“服务器问候”消息中提供与“受信任的根CA证书存储”(本地)内容匹配的“专有名称”计算机)运行在同一台服务器上,按照TLS1.2 RFC标准。

但是,在Win2012 R2操作系统环境中运行相同的应用程序(使用相同的证书集)时,在服务器问候消息期间,证书请求部分会一直返回一个空的DN列表(即列出的0证书),即使受信任的根CA存储(本地计算机)中提供了同一组受信任的根CA.

当SW作为TLS1.2握手中的客户端,运行在2008R2或2012R2上时,SW能够成功地使用在本地计算机 – >个人 – >证书下提供/安装的客户端身份validation证书。

我并没有参与程序encryptionfunction的代码开发,但是我有一种感觉,当从2008R2移动到2012R2时,我可能会错过操作系统级别的一些额外设置,而不是软件问题 – 所以我想知道是否任何人都可以build议可能需要修改的操作系统设置。

谢谢