如何为WCF net.tcp和https服务禁用SSLv2以支持SSLv3

时间:2012-10-24 14:42:05

标签: wcf ssl wcf-security pci-dss pci-compliance

作为PCI合规性测试的一部分,我们发现使用传输级别安全性和证书保护的WCF net.tcp端点允许SSLv2连接。我们的服务是自托管的,所以我们不使用IIS来托管它们,因此基于IIS的解决方案我认为不会起作用。

在浏览了很多MSDN页面后,我们还没有找到一种方法来告诉WCF连接使用哪种版本的SSL。

我们要求连接只接受SSLv3而不接受SSLv2以符合PCI标准。

是否有人知道如何在WCF连接(主机和客户端)上设置强制SSL版本,或者对于如何为整个Windows机器执行此操作有更多的方法吗?

1 个答案:

答案 0 :(得分:1)

不确定是否应该更好地询问服务器故障。

它是.NET应用程序吗?您可能需要查看ServicePointManager.SecurityProtocol。

此外,您可以尝试以下操作,例如,Windows Server 2008.它应该是系统范围的而不是IIS特定的。通过导航到开始>打开命令提示符运行>在服务器上使用cmd,然后执行以下语句:

REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\SSL 2.0\Server" /v Enabled /t REG_DWORD /d 0 /f 

REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\SSL 2.0\Client" /v Enabled /t REG_DWORD /d 0 /f 

REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\SSL 3.0\Server" /v Enabled /t REG_DWORD /d 1 /f 

REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\SSL 3.0\Client" /v Enabled /t REG_DWORD /d 1 /f 

REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f 

REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\TLS 1.0\Client" /v Enabled /t REG_DWORD /d 1 /f

之后,如果您尝试使用SSLv2

连接到服务器,则现在应该收到错误