当我的 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)
解决方案是再次生成我的证书,这次强制使用 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/ and http://msdn.microsoft.com/en-us/library/bfsktky3(v=vs.110).aspx .
如果有人发现这个does不过,如果您想了解密码套件,这里有一些我在此过程中发现的内容可能会对您有所帮助:
- 您可以使用此修补程序将两个 RSA 密码套件添加到 Windows Server 2003:http://support.microsoft.com/kb/948963
- 您可以在 regedit(Windows 注册表编辑器)中查看支持哪些密码HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers
- 您可以使用 IIS Crypto(一个免费的密码配置应用程序,https://www.nartac.com/Products/IISCrypto/)查看和启用/禁用密码(包括上面的那些修补程序密码)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)