如何添加到ASP.NET HttpRequest客户端可用的密码套件?

时间:2013-06-17 05:56:16

标签: asp.net ssl encryption

当我的ASP.NET网站在Windows 7机器上运行时,它可以在另一台Windows 7机器上连接(以编程方式作为“客户端”)到SSL加密服务(“服务器”)。

但是如果我的网站在生产框(Windows Server 2003)上,该服务的Windows日志显示:

从远程客户端应用程序收到TLS 1.0连接请求,但服务器不支持客户端应用程序支持的任何密码套件。 SSL连接请求失败。

(服务使用的是由makecert.exe创建的自签名证书,但我看不出如何让makecert允许更多的密码套件......或者我在2003年的盒子上安装了什么......?这个: https://serverfault.com/questions/166750对我不起作用,因为我没有使用CSR)

1 个答案:

答案 0 :(得分:5)

解决方案是再次生成我的证书,这次强制使用RSA和SHA1(尽管SHA1应该是默认值)。出于某种原因,Win Server 2k3无法或不会使用具有默认makecert证书的正确密码。这是对我有用的命令行:

makecert -pe -r -ss my -sr localMachine -n​​“CN = domainnameoripaddressgoeshere.com”-e 01/01/2098 -a sha1 -eku 1.3.6.1.5.5.7.3.1 -sky exchange -sp“Microsoft RSA SChannel加密提供程序”-sy 12

有关详细信息,请参阅http://mgowen.com/2013/06/19/cipher-suites-issue/http://msdn.microsoft.com/en-us/library/bfsktky3(v=vs.110).aspx

如果有人发现这个确实想知道密码套件,那么这里有一些我可以帮到你找到的东西:

  • 您可以使用此修补程序向Windows Server 2003添加两个RSA密码套件:http://support.microsoft.com/kb/948963
  • 您可以在 HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers
  • 下看到regedit(Windows注册表编辑器)支持哪些密码
  • 您可以使用IIS加密(一个免费的密码配置应用,https://www.nartac.com/Products/IISCrypto/)来查看和启用/禁用密码(包括上面的那些修补程序密码)。