很多时候,在部署CDN的Https回源的时候,令人烦躁的Shodan引擎会让世界知道你的源站地址,带来不少麻烦
比如惨烈的本站,在云锁防恶意解析功能不知道跑哪去以后,变成了这样

源站地址直接暴露,这样做cdn防御还有什么用,,,
根据证书查询到源服务器。。。。
于是就寻思着在NGINX上手动配置一个默认站点,NGINX的默认站点寻找顺序是按照配置文件顺序排列的,在找不到可用server_name的时候,自动返回第一个站点。
于是乎,我们需要在server标签最前面配置一个默认server标签来屏蔽大部分错误的请求。
不过首先,我们肯定不会特意去买了个证书去配置443的默认站点吧。
那就先使用OpenSSL自签发一份NGINX可用的证书
一、签发证书
1.生成私钥文件:
openssl genrsa -des3 -out server.key 2048
Ps:会提示需要给证书加密码
2.去除口令:
mv server.key server.key.backopenssl
rsa -in server.key.back -out server.key
Ps:会提示询问证书的密码
3.创建请求证书:
openssl req -new -key server.key -out server.csr
PS:会提示输入一些信息,可以乱填或一路回车
4.生成证书文件:
openssl x509 -req -days 36500 -in server.csr -signkey server.key -out server.crt
这样我们就得到了这样四个文件

二、配置NGINX
1.上传我们的server.crt server.key文件到我们NGINX所在的服务器下
2.修改配置文件,在所有server的最前面添加
server {
listen 80 default_server;
listen 443 default_server;
server_name _;
ssl on;
ssl_certificate /www/server.crt;//证书上传地址
ssl_certificate_key /www/server.key;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
return 403;//返回403错误,可以自定义页面或其他错误码
}
PS:代码放置需求,在虚拟主机配置文件前或主站点前
eg.(宝塔)

三、结束
然后咋办?还要说?当然是保存重启了或者重载拉:—)
如果返回403的话,正常就是这样了

这样一来,可以有效阻止绝大部分的针对主机和域名的扫描器,保障服务器安全
评论 (0)