说明

比如漏洞扫描工具会扫描出这种漏洞(直接访问 https://1.1.1.1 ):
SSL Certificate Is About To Expire
SSL Certificate Name Hostname Mismatch
只是 Nginx 开放到公网,也并不会直接通过 IP 地址来访问,为了消除这个漏洞影响。

不返回数据

可以修改 nginx 的默认站点配置,直接返回 444(444 状态码是 Nginx 特有的,即直接关闭链接)

1
2
3
4
5
6
7
8
9
10
11
server {
listen 80 default_server;
listen 443 ssl default_server;

ssl_certificate /etc/nginx/ssl/xxxx.com.crt;
ssl_certificate_key /etc/nginx/ssl/xxxx.com.key;

server_name _;
return 444;
}

这是一个最简单的配置,配置完成后,浏览器访问效果:
image.png

虽然不返回数据了,但是还是会泄露证书信息。

禁止发送证书

加上配置:ssl_reject_handshake on

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
listen 80 default_server;
listen 443 ssl default_server;

ssl_certificate /etc/nginx/ssl/xxxx.com.crt;
ssl_certificate_key /etc/nginx/ssl/xxxx.com.key;

server_name _;
ssl_reject_handshake on;
return 444;
}

server {
listen 80 ;
listen 443 ssl ;

ssl_certificate /etc/nginx/ssl/xxxx.com.crt;
ssl_certificate_key /etc/nginx/ssl/xxxx.com.key;

server_name a.xxxx.com;

default_type text/html;
return 200 "hello";
}

IP 地址直接访问的效果,不但被禁止打开。而且浏览器里看不到证书信息。

image.png

访问正常的域名正常:
image.png