新聞中心
我們通常會用cdn套到服務器ip上,來為網站或者后端程序做加速、防御??墒莕ginx在設計上有個小缺陷,會因為ssl證書泄露網站的原IP

為赤峰林西等地區(qū)用戶提供了全套網頁設計制作服務,及赤峰林西網站建設行業(yè)解決方案。主營業(yè)務為成都網站設計、網站建設、赤峰林西網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
原理
用Nginx部署網站,在默認或不正確的配置下,網站開啟ssl,直接訪問ip的443端口,即ip:443,Nginx會返回默認一個站點的ssl證書,間接的能讓別人掃到這個ip對應的域名。
原理就是對ip的443端口發(fā)送clienthello,對方回復的 serverhello中有ssl證書,ssl證書里的common name 有域名信息。這樣就知道了解析這個ip的域名。所以更準確的說是IP的443端口可能會暴露了域名。
動作再大一點,批量掃描機房的ip段,把對應的域名-ip 的多值映射表統(tǒng)計起來。以后想查某個域名對應的源站 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段更新,也加到里面。
新聞標題:SSL證書可能會暴露你的網站服務器IP
URL鏈接:http://www.dlmjj.cn/article/djhisdi.html


咨詢
建站咨詢
