您的位置 首页 WEB安全

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 {
      listen       80 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_certificate    xxxx.pem;
    ssl_certificate_key   xxxx.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

return 444;

}

购买合法IP站点的SSL证书

花点小钱买个合法的IP SSL证书配置到nginx里,IP证书一般一二百左右。加钱,世界触手可及。

仅允许指定cdn的IP访问

Nginx仅允许指定cdn的IP访问,避免放到公网上被任何人扫。以腾讯云CDN段为例,在Nginx网站配置文件里,添加如下:

location / {
allow   58.250.143.0/24;
allow   58.251.121.0/24;
allow   59.36.120.0/24;
allow   61.151.163.0/24;
allow   101.227.163.0/24;
allow   111.161.109.0/24;
allow   116.128.128.0/24;
allow   123.151.76.0/24;
allow   125.39.46.0/24;
allow   140.207.120.0/24;
allow   180.163.22.0/24;
allow   183.3.254.0/24;
allow   223.166.151.0/24;
  deny    all;
}

查一下使用的CDN商家的文档,如果有新的IP段更新,也加到里面。

免责声明:若文章为网络转载内容,则文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。
没有了

已是最早文章

为您推荐

PHPCMS9.6.0 任意文件上传漏洞+修复方案

PHPCMS9.6.0 任意文件上传漏洞+修复方案

  点击注册页面,进行抓包 在本地创建一个txt文本,写入一句话木马 POC siteid=1&mod...
dedecms漏洞修复大全含任意文件上传漏洞与注入漏洞

dedecms漏洞修复大全含任意文件上传漏洞与注入漏洞

任意文件上传漏洞修复包含一个文件/include/dialog/select_soft_post.php;SQL注入漏洞...

北极熊ASP木马扫描程序

程序免费使用 如付费购买则被骗 本程序可扫描到黑客界百分之98的asp木马程序 内部代码已混淆 未经允许请勿私自修改程序...
dedecms 5.6的入0day漏洞及解决方案

dedecms 5.6的入0day漏洞及解决方案

注入代码: uploads/plus/rss.php?tid=1&_Cs[][1]=1&_Cs[2%29...
逐浪CMS某处编码SQL注入漏洞

逐浪CMS某处编码SQL注入漏洞

逐浪CMS某处编码SQL注入漏洞 地址 https://demo.zoomla.cn/3d/InsertContext....
返回顶部