我有一个网站已绑定到具有 SAN(4 个附加名称)的新 SSL 证书。该证书具有 2048 位密钥。
问题是它在某些浏览器/操作系统组合上运行,但在其他浏览器/操作系统组合上运行却不运行。
- IE7 / Win XP - 失败
- IE6 / Win 2003 - 失败
- IE8 / Win XP / 企业代理 - 可以
- IE8 / Win 7 / 其他企业代理 - 失败
- IE9/10 / Win 7 - 可以
- Chrome / Win 7 - 可以
- Firefox / Win 7 - 可以
- Chrome / Android – 可以
注意:这两个公司代理是位于两个不同国家的截然不同的组织。
我已经在 IE6 / Win 2003 上安装了 Fiddler(列表中的第二个),并从 Inspectors\Raw 选项卡中捕获了以下内容:
IE6:
CONNECT sorry.site.not.disclosed:443 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; FDM; .NET4.0C; .NET4.0E)
Host: sorry.site.not.disclosed
Content-Length: 0
Connection: Keep-Alive
Pragma: no-cache
A SSLv2-compatible ClientHello handshake was found. Fiddler extracted the parameters below.
Major Version: 2
Minor Version: 0
Random: EA AE EB C5 20 0C 46 90 7F C1 E0 EE 47 BE 05 63
SessionID: empty
Ciphers:
[10080] SSL2_RC4_128_WITH_MD5
[700C0] SSL2_DES_192_EDE3_WITH_MD5
[30080] SSL2_RC2_128_WITH_MD5
[60040] SSL2_DES_64_WITH_MD5
[20080] SSL2_RC4_128_EXPORT40_WITH_MD5
[40080] SSL2_RC2_128_EXPORT40_WITH_MD5
[00FF] TLS_EMPTY_RENEGOTIATION_INFO_SCSV
Compression:
(not specified)
Extensions:
none
铬合金:
CONNECT sorry.site.not.disclosed:443 HTTP/1.1
Host: sorry.site.not.disclosed
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.
Major Version: 3
Minor Version: 2
Random: 51 4A 0D 68 FE C4 50 A9 26 43 9E 1A C2 E9 05 5C FE 5F CF 37 4D 20 96 FF 0E 2F 5E EB 16 C1 F2 20
SessionID: empty
Ciphers:
[C014] TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA
[0088] TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
[0087] TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA
[0039] TLS_DHE_RSA_WITH_AES_256_SHA
[0038] TLS_DHE_DSS_WITH_AES_256_SHA
[C00F] TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
[0084] TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
[0035] TLS_RSA_AES_256_SHA
[C011] TLS_ECDHE_RSA_WITH_RC4_128_SHA
[C013] TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA
[0045] TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
[0044] TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA
[0066] TLS_DHE_DSS_WITH_RC4_128_SHA
[0033] TLS_DHE_RSA_WITH_AES_128_SHA
[0032] TLS_DHE_DSS_WITH_AES_128_SHA
[C00C] TLS_ECDH_RSA_WITH_RC4_128_SHA
[C00E] TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
[0096] TLS_RSA_WITH_SEED_CBC_SHA
[0041] TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
[0005] SSL_RSA_WITH_RC4_128_SHA
[0004] SSL_RSA_WITH_RC4_128_MD5
[002F] TLS_RSA_AES_128_SHA
[C012] TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
[0016] SSL_DHE_RSA_WITH_3DES_EDE_SHA
[0013] SSL_DHE_DSS_WITH_3DES_EDE_SHA
[C00D] TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
[FEFF] SSL_RSA_FIPS_WITH_3DES_EDE_SHA
[000A] SSL_RSA_WITH_3DES_EDE_SHA
Compression:
[00] NO_COMPRESSION
Extensions:
server_name sorry.site.not.disclosed
renegotiation_info 00
elliptic_curves 00 06 00 17 00 18 00 19
ec_point_formats 01 00
SessionTicket TLS empty
NextProtocolNegotiation empty
channel_id(GoogleDraft) empty
status_request 01 00 00 00 00
使用 SSLLabs 进行测试时,例如https://www.ssllabs.com/ssltest/analyze.html?d=mail.google.com
该网站仅显示密码套件下的两个选项,并且仅支持 TLS 1.0:
Protocols
TLS 1.2 No
TLS 1.1 No
TLS 1.0 Yes
SSL 3.0 No
SSL 2.0 No
Cipher Suites (SSLv3+ suites in server-preferred order, then SSLv2 suites where used)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) ECDH 256 bits (eq. 3072 bits RSA) 128
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) ECDH 256 bits (eq. 3072 bits RSA)
我已经联系了 Verisign(澳大利亚),他们声称所有 Verisign 证书都支持 SSLv1、v2、v3 和 TLS。
那么为什么 IIS 服务器不显示它呢?使用自签名通配符证书,我能够让同一个 IIS 服务器在 SSLLabs 上报告:
Protocols
TLS 1.2 No
TLS 1.1 No
TLS 1.0 Yes
SSL 3.0 Yes
SSL 2.0 INSECURE Yes
Cipher Suites (SSLv3+ suites in server-preferred order, then SSLv2 suites where used)
TLS_RSA_WITH_AES_128_CBC_SHA (0x2f) 128
TLS_RSA_WITH_AES_256_CBC_SHA (0x35) 256
TLS_RSA_WITH_RC4_128_SHA (0x5) 128
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa) 168
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) ECDH 256 bits (eq. 3072 bits RSA) 128
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) ECDH 256 bits (eq. 3072 bits RSA) 256
TLS_RSA_WITH_RC4_128_MD5 (0x4) 128
SSL_DES_192_EDE3_CBC_WITH_MD5 (0x700c0) 168
SSL_RC4_128_WITH_MD5 (0x10080) 128
下一步该看哪儿?
答案1
在我见过的所有 Windows 2008 R2 服务器上,ssl v2 都默认启用,我不得不自己去禁用它。这样做(禁用它)似乎并没有破坏 IE6……显然这台机器已经被某些人强化了
Qualys 有一个非常不错的在线 SSL 扫描器,它可以准确地告诉你启用了哪些协议甚至密码套件,以及是否存在任何其他证书错误以及允许进行哪些重新协商 -https://www.ssllabs.com/ssltest/- 也许选择了过于有限的密码和协议组合。
当您说失败时 - 您是什么意思? 证书错误? 根 CA 在较旧的客户端计算机上是否受信任?
可以在 IE 中禁用 SSL v3 和其他协议,在那些抛出错误的机器上,检查工具/Internet 选项/高级选项卡,看看是否选中了 SSL 3 和 TLS 1。
检查以下注册表项的值
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\DisableRenegoOnClient
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\DisableRenegoOnServer
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\AllowInsecureRenegoClients
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\AllowInsecureRenegoServers
看http://support.microsoft.com/kb/977377和http://support.microsoft.com/kb/980436