问题说明

前几天运维同事反馈开发同事代码在Windows 2008 R2 Datacenter服务器上跑会出现无法正常建立SSL/TLS连接的情况,在自己的电脑上跑是OK的,代码也没有变动过。于是我问他改了服务器上什么配置没有,他说改了注册表也不行。接过这个坑,心里有一万条艹,没事改注册表,这还能够回滚吗?这坑还可以越得过去吗?连忙问了一下,改注册表有记录吗?他说还在服务器桌面上,松了一口气,还可以回滚。先根据对应注册表修改文件改回了注册表配置,重启服务器。

再通过DotNet Framework代码测试接口出现以下错误:

1
2
3
4
5
时间:2020-03-23 12:07:44 执行开始。。。
时间:2020-03-23 12:07:44 接口出现异常WebException:
Response报文:请求被中止: 未能创建 SSL/TLS 安全通道。
时间:2020-03-23 12:07:44 执行结束。。。
时间:2020-03-23 12:07:44 总耗时:428毫秒

排查错误

于是写了一个Python脚本测试了一把是正常的,又通过Chrome浏览器访问接口也可以正常响应,但使用DotNet Framework写的代码就是不行。于是Google了一下,希望能够尽快解决问题,回复基本上都是修改DotNet代码,添加对于4.0对TLS1.2的支持,还有就是改注册表,开启TLS1.2的支持。前者我觉得是有可能的,根据微软官方信息显示DotNet Framework 4.0需要手动配置TLS1.2的支持才能够响应TLS1.2。
于是加了以下代码:

1
ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 |(SecurityProtocolType)768 | (SecurityProtocolType)3072;

测试OK,OK问题解决了?找了另一台服务器一测试,还是不行。怎么可能一台服务器可以,另一台不行了?没有道理啊。本以为这个问题就这么简单就解决了,但实际结果并非如此,查看日志还是一样的报错Response报文:请求被中止: 未能创建 SSL/TLS 安全通道。。看来只能够通过抓包解决问题了,于是分别在行与不行的服务器上安装了Wireshark,进行抓包分析。
先在正常服务器上抓包,从下图可以看到,是很正常的。

问题说明

前几天运维同事反馈开发同事代码在Windows 2008 R2 Datacenter服务器上跑会出现无法正常建立SSL/TLS连接的情况,在自己的电脑上跑是OK的,代码也没有变动过。于是我问他改了服务器上什么配置没有,他说改了注册表也不行。接过这个坑,心里有一万条艹,没事改注册表,这还能够回滚吗?这坑还可以越得过去吗?连忙问了一下,改注册表有记录吗?他说还在服务器桌面上,松了一口气,还可以回滚。先根据对应注册表修改文件改回了注册表配置,重启服务器。

再通过DotNet Framework代码测试接口出现以下错误:

1
2
3
4
5
时间:2020-03-23 12:07:44 执行开始。。。
时间:2020-03-23 12:07:44 接口出现异常WebException:
Response报文:请求被中止: 未能创建 SSL/TLS 安全通道。
时间:2020-03-23 12:07:44 执行结束。。。
时间:2020-03-23 12:07:44 总耗时:428毫秒

排查错误

于是写了一个Python脚本测试了一把是正常的,又通过Chrome浏览器访问接口也可以正常响应,但使用DotNet Framework写的代码就是不行。于是Google了一下,希望能够尽快解决问题,回复基本上都是修改DotNet代码,添加对于4.0对TLS1.2的支持,还有就是改注册表,开启TLS1.2的支持。前者我觉得是有可能的,根据微软官方信息显示DotNet Framework 4.0需要手动配置TLS1.2的支持才能够响应TLS1.2。
于是加了以下代码:

1
ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 |(SecurityProtocolType)768 | (SecurityProtocolType)3072;

测试OK,OK问题解决了?找了另一台服务器一测试,还是不行。怎么可能一台服务器可以,另一台不行了?没有道理啊。本以为这个问题就这么简单就解决了,但实际结果并非如此,查看日志还是一样的报错Response报文:请求被中止: 未能创建 SSL/TLS 安全通道。。看来只能够通过抓包解决问题了,于是分别在行与不行的服务器上安装了Wireshark,进行抓包分析。
先在正常服务器上抓包,从下图可以看到,是很正常的。

而在非正常的服务器上抓包,报错(因为在测试过程中,没有保存抓包数据,只记录了报错关键字):

1
Level: Fatal, Description: HandShake Failure

一般来说,这种错误是因为加密套件不匹配造成的,所以开始比较两台服务器之间加密套件的区别。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#因为没有截图保存,只导出了Cipher Suites进行比较,发现正常的服务器支持28种Cipher Suites,而非正常的服务器只支持21种Cipher Suites,相差7种Cipher Suites。
#非正常服务器
Cipher Suites (21 suites)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 (0x0040)Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 (0x006a)Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)Cipher Suite: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013)Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)
#正常服务器
Cipher Suites (28 suites)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)Cipher Suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x009f)Cipher Suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 (0x006a)Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 (0x0040)Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)Cipher Suite: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013)Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)

再仔细查看了一下正常响应的服务器,在发送Server Hello时使用的加密套件(Cipher Suite)是:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

而非正常的服务器响应的是:TLS 1.2 Alert(Level: Fatal, Description:Handshake failure),从这里就可以很清楚的看到原因了,是因为客户端不支持Cipher Suite:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384造成的,所以HTTPS请求连接建立才会失败。

解决问题

找到问题,解决问题就简单了,Windows IIS Cipher Suites问题,我们可以通过IIS Crypto工具进行解决。下载工具IIS Crypto,然后查看当前服务器的加密套件:

我们会发现在这里面并没有证书支持的加密套件,于是我手动添加了证书所支持的加密套件,重启服务器。

再请求对接接口,现在可以正常获取数据了。

1
2
3
4
5
6
7
8
9
时间:2020-03-23 14:55:30 执行开始。。。
时间:2020-03-23 14:55:45 {"current_page": 1,"data": [{"id": xxx,"PID": "xxxx","totalCount": "0"},

正常响应抓包:

扩展思考

怎么知道对应证书支持哪些加密套件了?

我们可以通过这个工具的Site Scanner,输入对应URL,然后Scan,这时候会打开ssllabs,进行网站证书检测,我们可以拉到最后面,有一个Cipher Suites就可以看到对应的TLS 1.2加密套件支持。

这里我们可以看到此证书是支持5种加密套件的,而我们的服务器完美的错过了这5种加密套件,但也并非所有的服务器都错过了,所以出现有些服务器可以正常访问接口,有些服务器不正常。

还有一种方法,就是我们通过Chrome,按F12,选择Security,也可以查看到对应的安全连接设置。

或者通过nmap命令查看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
~ » nmap -p 443 --script ssl-enum-ciphers www.oubayun.com
Starting Nmap 7.80 ( https://nmap.org ) at 2020-03-23 17:23 CST
Nmap scan report for www.oubayun.com (xxx.xxx.xxx.xxx)
Host is up (0.065s latency).PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) A
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (secp256r1) A
|     compressors:
|       NULL
|     cipher preference: client
|     warnings:
|       Key exchange (dh 2048) of lower strength than certificate key
|       Key exchange (secp256r1) of lower strength than certificate key
|_  least strength: ANmap done: 1 IP address (1 host up) scanned in 18.84 seconds

另外还可以通过sslScan命令查看其它推荐的加密套件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
b~ » sslscan www.oubayun.com
Version: 1.11.13-static
OpenSSL 1.0.2f  28 Jan 2016Connected to xxx.xxx.xxx.xxxTesting SSL server www.oubayun.com on port 443 using SNI name www.oubayun.comTLS Fallback SCSV:
Server supports TLS Fallback SCSVTLS renegotiation:
Session renegotiation not supportedTLS Compression:
Compression disabledHeartbleed:
TLS 1.2 not vulnerable to heartbleed
TLS 1.1 not vulnerable to heartbleed
TLS 1.0 not vulnerable to heartbleedSupported Server Cipher(s):
#这里我们可以看到首选的是: ECDHE-RSA-AES256-GCM-SHA384
Preferred TLSv1.2  256 bits  ECDHE-RSA-AES256-GCM-SHA384   Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  DHE-RSA-AES256-GCM-SHA384     DHE 2048 bits
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-GCM-SHA256   Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  DHE-RSA-AES128-GCM-SHA256     DHE 2048 bitsSSL Certificate:
Signature Algorithm: sha256WithRSAEncryption
RSA Key Strength:    4096Subject:  www.oubayun.com
Altnames: DNS:www.oubayun.com
Issuer:   Let's Encrypt Authority X3Not valid before: Feb 29 09:35:16 2020 GMT
Not valid after:  May 29 09:35:16 2020 GMT

当然查看Cipher Suites的方法不仅仅只有这些,还有很多其它的方法。

怎么开启TLS 1.2支持?

这是我们也可以通过这个工具,点击Schannel,然后勾选TLS 1.2,选择Apply,再重启服务器即可。

TLS 1.2支持37种加密套件,但建议使用以下种类:

1
2
3
4
#Nginx设置
AESGCM+ECDH
ARIAGCM+ECDH
CHACHA20+ECDH

而在非正常的服务器上抓包,报错(因为在测试过程中,没有保存抓包数据,只记录了报错关键字):

1
Level: Fatal, Description: HandShake Failure

一般来说,这种错误是因为加密套件不匹配造成的,所以开始比较两台服务器之间加密套件的区别。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#因为没有截图保存,只导出了Cipher Suites进行比较,发现正常的服务器支持28种Cipher Suites,而非正常的服务器只支持21种Cipher Suites,相差7种Cipher Suites。
#非正常服务器
Cipher Suites (21 suites)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 (0x0040)Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 (0x006a)Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)Cipher Suite: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013)Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)
#正常服务器
Cipher Suites (28 suites)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)Cipher Suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x009f)Cipher Suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 (0x006a)Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 (0x0040)Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)Cipher Suite: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013)Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)

再仔细查看了一下正常响应的服务器,在发送Server Hello时使用的加密套件(Cipher Suite)是:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

而非正常的服务器响应的是:TLS 1.2 Alert(Level: Fatal, Description:Handshake failure),从这里就可以很清楚的看到原因了,是因为客户端不支持Cipher Suite:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384造成的,所以HTTPS请求连接建立才会失败。

解决问题

找到问题,解决问题就简单了,Windows IIS Cipher Suites问题,我们可以通过IIS Crypto工具进行解决。下载工具IIS Crypto,然后查看当前服务器的加密套件:

我们会发现在这里面并没有证书支持的加密套件,于是我手动添加了证书所支持的加密套件,重启服务器。

再请求对接接口,现在可以正常获取数据了。

1
2
3
4
5
6
7
8
9
时间:2020-03-23 14:55:30 执行开始。。。
时间:2020-03-23 14:55:45 {"current_page": 1,"data": [{"id": xxx,"PID": "xxxx","totalCount": "0"},

正常响应抓包:

扩展思考

怎么知道对应证书支持哪些加密套件了?

我们可以通过这个工具的Site Scanner,输入对应URL,然后Scan,这时候会打开ssllabs,进行网站证书检测,我们可以拉到最后面,有一个Cipher Suites就可以看到对应的TLS 1.2加密套件支持。

这里我们可以看到此证书是支持5种加密套件的,而我们的服务器完美的错过了这5种加密套件,但也并非所有的服务器都错过了,所以出现有些服务器可以正常访问接口,有些服务器不正常。

还有一种方法,就是我们通过Chrome,按F12,选择Security,也可以查看到对应的安全连接设置。

或者通过nmap命令查看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
~ » nmap -p 443 --script ssl-enum-ciphers www.oubayun.com
Starting Nmap 7.80 ( https://nmap.org ) at 2020-03-23 17:23 CST
Nmap scan report for www.oubayun.com (xxx.xxx.xxx.xxx)
Host is up (0.065s latency).PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) A
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (secp256r1) A
|     compressors:
|       NULL
|     cipher preference: client
|     warnings:
|       Key exchange (dh 2048) of lower strength than certificate key
|       Key exchange (secp256r1) of lower strength than certificate key
|_  least strength: ANmap done: 1 IP address (1 host up) scanned in 18.84 seconds

另外还可以通过sslScan命令查看其它推荐的加密套件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
b~ » sslscan www.oubayun.com
Version: 1.11.13-static
OpenSSL 1.0.2f  28 Jan 2016Connected to xxx.xxx.xxx.xxxTesting SSL server www.oubayun.com on port 443 using SNI name www.oubayun.comTLS Fallback SCSV:
Server supports TLS Fallback SCSVTLS renegotiation:
Session renegotiation not supportedTLS Compression:
Compression disabledHeartbleed:
TLS 1.2 not vulnerable to heartbleed
TLS 1.1 not vulnerable to heartbleed
TLS 1.0 not vulnerable to heartbleedSupported Server Cipher(s):
#这里我们可以看到首选的是: ECDHE-RSA-AES256-GCM-SHA384
Preferred TLSv1.2  256 bits  ECDHE-RSA-AES256-GCM-SHA384   Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  DHE-RSA-AES256-GCM-SHA384     DHE 2048 bits
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-GCM-SHA256   Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  DHE-RSA-AES128-GCM-SHA256     DHE 2048 bitsSSL Certificate:
Signature Algorithm: sha256WithRSAEncryption
RSA Key Strength:    4096Subject:  www.oubayun.com
Altnames: DNS:www.oubayun.com
Issuer:   Let's Encrypt Authority X3Not valid before: Feb 29 09:35:16 2020 GMT
Not valid after:  May 29 09:35:16 2020 GMT

当然查看Cipher Suites的方法不仅仅只有这些,还有很多其它的方法。

怎么开启TLS 1.2支持?

这是我们也可以通过这个工具,点击Schannel,然后勾选TLS 1.2,选择Apply,再重启服务器即可。

TLS 1.2支持37种加密套件,但建议使用以下种类:

1
2
3
4
#Nginx设置
AESGCM+ECDH
ARIAGCM+ECDH
CHACHA20+ECDH

DotNet SSL TLS证书问题分析排障相关推荐

  1. 更新:为 NGINX 配置免费的 Let‘s Encrypt SSL/TLS 证书

    众所周知,网站的 SSL/TLS 加密会为您的用户带来更靠前的搜索排名和更出色的安全性.但目前有许多障碍阻碍了网站所有者采用 SSL. 其中两个最大障碍是证书获取成本高昂和所涉人工流程繁琐.而现在,有 ...

  2. 如何解决SSL/TLS证书服务的高可用性?

    背景介绍:2017年1月份,Google将Chrome 56中所有的 http站点标记为不安全,并对所有使用http方式的登录交互页发出醒目的"不安全"提示. Apple自2015 ...

  3. SSL/TLS证书1年有效期新规已至,被“证书过期”支配的恐惧又增加了!

    2020年9月1日起,两年期公共SSL/TLS证书正式告别了行业,在三大浏览器(Apple Safari. Google Chrome.Mozilla Firefox)的推动下,SSL/TLS证书最长 ...

  4. SSL/TLS证书过期了怎么办?

    如果SSL/TLS证书过期了,网站访问者可能会看到浏览器的安全警告,从而导致访问流量下降和用户体验受损.如果您的SSL/TLS证书过期了,可以考虑以下几种解决方案: 1.更新证书:最直接的方法是更新证 ...

  5. SSL/TLS证书有什么作用?

    SSL/TLS证书是由被称为证书颁发机构的第三方签署的,作用是防止攻击者创建伪造证书并将其作为合法证书进行传递.使用SSL/TLS协议可以确保数据安全通过网络传输.如果SSL/TLS证书失效了,还会有 ...

  6. SSL/TLS捕包分析

    一.基本概念 SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层.SSL通过互相认证.使用数字签名确保完整性.使用加密确保私密 ...

  7. 添加https后反向代理gateway报错io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record

    添加https后反向代理gateway报错 2023-02-17 14:19:05.328 [reactor-http-epoll-4] ------ ERROR c..si.gateway.exce ...

  8. SSL / TLS协议中数字签名与hash算法的联系

    今天要为大家介绍的是哈希算法,在介绍SHA之前,只有了解什么是SHA,我们才清楚SSL证书如何使用哈希来形成数字签名.那么什么是哈希呢? HASH算法将任意长度的二进制值映射为较短的固定长度的二进制值 ...

  9. HTTP 和HTTPS 连接过程详解(SSL TLS)

    简介 HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了解决了http的三个缺点(被监听.被篡改.被伪装) 对称加密和 ...

最新文章

  1. 揭秘人工智能面试内容:8家国际巨头机器学习面试题目整理
  2. 中国AI服务器,刷新全球18项性能基准测试纪录
  3. C++多线程中互斥量std::mutex与模板类std::lock_guard
  4. 数据结构——图:极大小连通子图、图的存储结构、图的遍历
  5. Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程
  6. python任务栏通知区域_python+pyqt实现右下角弹出框
  7. android的m、mm、mmm编译命令
  8. linux的常用操作——gcc
  9. 很遗憾!iPhone 12内部CAD设计图流出:刘海并未缩小
  10. 学习云计算有什么用?企业怎么才能“上云”?
  11. java jpa自身关联_java-如何通过JPA / Hibernate加入获取两个关联
  12. 重点项目却总是腐化,程序员为什么会写烂代码?
  13. 对付U盘病毒彻底免疫
  14. 使用PowerShell查看Windows 补丁记录并写入数据库
  15. 2022年AI领域有哪些重要突破?(附报告全文)
  16. hdu 2629 Identity Card (字符串解析模拟题)
  17. 机动车c1科三考试语言灯光,科目三灯光模拟考试内容、口诀、图解、技巧
  18. 面试以前上司,能力一般,不想给他通过,但他卑微哀求,怎么办?
  19. android5.0+电视,Android 5.0搭载在电视上 是怎样的体验
  20. 有关/mnt/asec /mnt/secure文件夹及app2sd原理

热门文章

  1. 使用SQLServer2005插入一条数据时返回当前插入数据的ID
  2. CSV格式数据如何导入MySQL?
  3. 一个技术人的知识管理方法论
  4. Linux内核升级,从2.6.18升级到3.2.14
  5. c++的进制转换函数
  6. chrome开启touch屏幕点击事件
  7. 在MVC项目中使用Ninject
  8. 自动为DEV GridView控件添加SizeChanged事件
  9. IOS使用Auto Layout中的VFL适配
  10. JQuery Tree 树形结构插件 zTree