我们通常会用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 # 禁止IP直接访问网站server {listen80 default_server;listen[::]:80 default_server;server_name_;return 444;
}
自签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”,类似配置大概: {listen 80 ;listen 443 ssl http2 default_server;server_name ip;
#HTTP_TO_HTTPS_END
ssl_certificatexxxx.pem;
ssl_certificate_keyxxxx.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;return 444;
}
购买合法IP站点的SSL证书
花点小钱买个合法的IP SSL证书配置到nginx里,IP证书一般一二百左右 。
加钱,世界触手可及 。
【windows证书服务器申请证书】仅允许指定cdn的IP访问
Nginx仅允许指定cdn的IP访问,避免放到公网上被任何人扫 。以腾讯云CDN段为例,在Nginx网站配置文件里,添加如下: location / {allow58.250.143.0/24;allow58.251.121.0/24;allow59.36.120.0/24;allow61.151.163.0/24;allow101.227.163.0/24;allow111.161.109.0/24;allow116.128.128.0/24;allow123.151.76.0/24;allow125.39.46.0/24;allow140.207.120.0/24;allow180.163.22.0/24;allow183.3.254.0/24;allow223.166.151.0/24;
denyall;}
查一下使用的CDN商家的文档,如果有新的IP段更新,也加到里面 。
服务器证书?(windows证书服务器申请证书)
- 剑桥商务英语等级考试 剑桥商务英语证书查询
- 离婚公证书怎么办理 怎么办理离婚公证
- 三级人力资源管理师证书有用吗 三级人力资源管理师证书
- 保证书500字万能检讨 保证书500字
- 贷款车辆登记证书什么时候给
- 办理不动产权证书有什么用呢
- 全国职业资格证书种类大全 资格证书种类大全
- 大学生syb创业培训证书怎么获得
- 健康管理师证书可以从事什么工作 健康管理师证书有用吗
- 成都补办机动车登记证书在哪里补办
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
