自定义Nginx的SSL加密方式

Dawn5ky Lv2

在自定义之前,可以使用如下命令查看当前服务器443使用的SSL加密方式:

1
nmap --script ssl-cert,ssl-enum-ciphers -p 443 (host)

我对我的blog使用了如上命令,得到了下面这段文本:

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
ssl-enum-ciphers: 
SSLv3: No supported ciphers found
TLSv1.0:
ciphers:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
TLS_RSA_WITH_AES_128_CBC_SHA - strong
TLS_RSA_WITH_AES_256_CBC_SHA - strong
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
compressors:
NULL
TLSv1.1:
ciphers:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
TLS_RSA_WITH_AES_128_CBC_SHA - strong
TLS_RSA_WITH_AES_256_CBC_SHA - strong
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
compressors:
NULL
TLSv1.2:
ciphers:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
TLS_RSA_WITH_AES_128_CBC_SHA - strong
TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
TLS_RSA_WITH_AES_256_CBC_SHA - strong
TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
compressors:
NULL

每个加密方式后面跟的都是strong,说明我的blog目前允许的所有加密方式都是安全的。

1. 查看Nginx的SSL加密方式

打开Nginx的站点配置文件,在里面找到SSL的配置区域,找到ssl_ciphers,如果你使用的是宝塔,那它的默认配置如下:

1
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

可以看到,里面允许了CHACHA20、AES_128/256_GCM和3DES,并禁用了MD5。

2. 修改Nginx的SSL加密方式

当网站访问量大而内容又不敏感(比如博客)的时候,AES_256_GCM就显得有些多余,会给服务器增加不必要的负担,我们可以关掉它:

1
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+3DES:RSA+3DES:!MD5;

注意:这里的加密方式是靠半角冒号来分隔的,半角感叹号意为禁止某个加密方式。 避坑:修改完加密方式后,一定要把下面这段的on改为off或者注释掉,否则修改不会生效:

1
ssl_prefer_server_ciphers off;

如果配置文件里没有ssl_ciphers,可以自己添加一段。你也可以直接使用下面这段配置:

1
ssl_ciphers HIGH:!ADH:!MD5;
  • 标题: 自定义Nginx的SSL加密方式
  • 作者: Dawn5ky
  • 创建于 : 2022-04-21 14:57:32
  • 更新于 : 2023-10-16 18:09:20
  • 链接: https://dawn.best/116/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
自定义Nginx的SSL加密方式