大家通常用到cdn套到服务器ip上,来为网站或是后面程序流程做加快、防御力。但是nginx在设计上有一个小缺点,会由于ssl证书泄漏网站的原IP
原 理
用Nginx布署网站,在默认设置或错误的配备下,网站打开ssl,立即访问ip的443端口,即ip:443,Nginx会回到默认设置一个网站的ssl证书,间接性的能让他人扫到这一ip相匹配的域名。
基本原理便是对ip的443端口推送clienthello,另一方回应的 serverhello中有ssl证书,ssl证书里的common name 有域名信息内容。那样就知道分析这一ip的域名。因此更确切的说是IP的443端口很有可能会泄露了域名。
姿势再大一点,大批量扫描仪计算机房的ip段,把相匹配的域名-ip 的多值投射表统计分析起來。之后想查某一域名相匹配的源站 ip 查这一表就可以了,这也是灰产喜爱几件事。
与此同时也是许多网站,本来套上cdn,仍然能被打进源站IP的缘故。
解决方案
自签IP的SSL证书,回到444
自签证书的目标并非为了更好地访问,反而是绕开Nginx的这些缺点。转化成自签的IP SSL证书可以用开源系统的Mkcert(https://myssl.com/create_test_cert.html)专用工具。Mkcert应用起來略微不便,或是用一个检测证书的在线网页专用工具:https://myssl.com/create_test_cert.html
在填好域名的部位填入IP地址,点转化成按键会自动测量证书展现在下面,分别储存为.pem文件和.key文件。随后在nginx里配备上“return 444”,相近配备大约:
选购合理合法IP网站的SSL证书
花点一点钱买一个合理合法的IP SSL证书配备到nginx里,IP证书一般一二百上下。加价,全球近在咫尺。
仅容许特定cdn的IP访问
Nginx仅容许特定cdn的IP访问,防止放进公在网上被所有人扫。以腾讯云服务CDN段为例子,在Nginx网站环境变量里,加上如下所示:
查一下应用的CDN店家的文本文档,如果有新的IP段升级,也加进里边。
文中摘自微信公众平台「Linux就该那么学」,创作者倪家兴。转截文中请联络Linux就该那么学微信公众号。