说明 比如漏洞扫描工具会扫描出这种漏洞(直接访问 https://1.1.1.1 ):SSL Certificate Is About To ExpireSSL 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 ; }
这是一个最简单的配置,配置完成后,浏览器访问效果:
虽然不返回数据了,但是还是会泄露证书信息。
禁止发送证书 加上配置: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 地址直接访问的效果,不但被禁止打开。而且浏览器里看不到证书信息。
访问正常的域名正常: