分类:笔记 日期:2021-06-03 作者:caocaofff 浏览:1400
以前在搭建网站时,没有加这个配置项,所以当时能用IP直接访问到我的博客。
现在服务器上有至少5个网站,所以绝不能这么放任不管了,也可以禁止别人恶意解析。
在nginx配置文件里加上以下代码,可以禁止用户使用IP直接访问网站,使用IP访问时将返回403错误代码。
server {
listen 80 default;
server_name _;
return 403;
}
这是最简单的配置,但只能适用于别人访问80端口,如果访问443端口,那么网站就又被暴露了!
所以必须追加下面的配置:
server {
listen 443 default;
server_name _;
ssl_certificate /etc/nginx/ssl/cert_rsa/none.crt;
ssl_certificate_key /etc/nginx/ssl/cert_rsa/none.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
return 403;
}
如果就这么添加配置,在使用nginx -t检测时会报错,因为你没有供其使用的SSL证书。所以我们必须要自签SSL证书。
这里我们为了兼容性就使用rsa算法,没必要整ECC了:
cd /etc/nginx/ssl/cert_rsa
#生成key,必须要输入密码
openssl genrsa -des3 -out none.key 2048
#为了避免麻烦可以删除生成时必须输入的密码
openssl rsa -in none.key -out none1.key
mv none1.key none.key
#然后根据这个key文件生成证书请求文件,生成时需要填写信息,但你可以一路回车跳过
openssl req -new -key none.key -out none.csr
#根据这2个文件(none.key none.csr)生成crt证书文件
openssl x509 -req -days 3650 -in none.csr -signkey none.key -out none.crt
这里 3650 天是证书有效期,有效期大家随意。最后使用到的文件是 key 和 crt 文件。
最终的效果:
CC版权: 本篇博文采用《CC 协议》,转载必须注明作者和本文链接