别让SSL证书暴露了你的网站服务器IP
我们通常会用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 {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_ENDssl_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段更新,也加到里面。
别让SSL证书暴露了你的网站服务器IP相关推荐
- win10无法检验服务器出示的ssl证书,大师解决win10系统网站启用ssL安全证书的问题...
win10系统是很多电脑用户首选的装机系统,然而有不少用户在使用过程中可能会碰到win10系统网站启用ssL安全证书的情况.大部分用户电脑技术都是菜鸟水平,面对win10系统网站启用ssL安全证书的问 ...
- 免费SSL证书,如果是阿里云服务器,直接登录阿里云搜索SSL,申请免费证书即可
免费SSL证书,如果是阿里云服务器,直接登录阿里云搜索SSL,申请免费证书即可. 如果迁移服务器,原证书未到期的情况下可以转移继续使用.把证书的key pem的内容配置到新服务器里即可.但是这里要注 ...
- 安装SSL证书后不能访问https网站怎么办
很多朋友在安装配置完SSL证书后不能访问https网站,搞不清楚问题出在哪里,更不知道如何解决.下面就以nginx配置SSL证书为例,来讲一下安装SSL证书后不能访问的解决方法. 1.确保可以以htt ...
- 免费SSL证书大全,加速普及网站实现HTTPS加密
免费SSL证书大全,加速普及网站实现HTTPS加密 SSL 证书用于加密 HTTP 协议,实现网站通过HTTPS加密协议访问.随着国内外各大网站实现全站 HTTPS 协议,以及搜索引擎对使用 HTTP ...
- tomact配置好ssl证书后访问不到tomact_服务器上配置HTTPS的操作方法!
数据信息安全得到更多人的重视,尤其在网站传输敏感数据时,更应该保证信息的安全性.而如今保护数据最有效的方式之一,就是启用HTTPS.这种新型加密模式的安全度高,黑客很难从中拦截到数据. 服务器上配置H ...
- 申请阿里云服务器并配置SSL证书(附带微信公众号配置服务器)
首先大家要了解到自己的笔记本连接wifi是没有公网的,当然建议大家在公司测试,毕竟在工作空余时间学习学习提升一下技术还是比较好的 首先服务器配置,最重要的一点 要有自己的服务器, 如果有公网的话 可以 ...
- 部署SSL证书,为您的网站保驾护航
随着<网络安全法>的出台和实行,使得互联网安全上升到国家安全的高度,与此同时,越来越多的主流网站都开始部署SSL证书对网站隐私和数据传输加以保护. SSL证书是数字证书的一种,类似于驾驶证 ...
- 通过Python脚本下载【来此加密的免费HTTPS SSL证书】并自动更新到服务器和阿里云CDN
异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...
- 8.0强行转换后变成了7_如何在服务器上安装SSL证书,让你的网站变成https
本文适合任何人了解,图形化操作.下面以腾讯云为例,并且服务器(linux)也安装了宝塔面板. 1.登陆腾讯云账号进入控制台,找到SSL的产品 2.按要求申请并填写表单,记住私钥密码 3.提交后,待腾讯 ...
最新文章
- Servlet 传输中文乱码解决方法
- 新发现为类脑计算机开辟了道路
- 关于封装了gevent的request grequest库的使用与讨论
- Mybatis用法小结
- centos7.5 使用报错:用户名 不在 sudoers文件中,此事将被报告。
- 11位大咖带你玩转WebRTC开发(内附PPT资料下载)
- java 接口数据类型_Java 数据类型(中): 抽象类与接口
- php控制器,php模型和控制器之间交互
- 无需无线路由,将系统为win7的笔记本变成wifi的方法
- 2010工作代码总结之三(repostioryItemGridLookUpEdit下拉框)
- java 调用tomcat api,tomcat处理http请求-下
- 一、理解网络编程和套接字
- 计算机中MAX函数是求什么,MAX函数
- 计算机网络-什么是网络协议?
- 微电子学前沿讲座三-国产EDA的困境-刘伟民博士
- 卡尔曼滤波原在温度测量中的应用
- 牛客网ACM模式 JsV8和Java输入输出练习
- Bash Shellshock(Bash远程代码执行)漏洞分析及利用思路
- ROS学习记录(二)阿克曼转向车运动学模型及在gazebo中搭建仿真环境
- AXI - 4KB边界