浏览器输入Nginx服务器IP会访问服务器上的网站,会导致一些域名没有在服务器上面配置,解析到服务器,会自动跳转网站域名
配置IP禁止
需要在/etc/Nginx目录下nginx.conf文件中添加默认端口阻止
需要添加在include上面
会阻止没有在服务器上配置的域名和IP访问服务器网站
server
{
listen 80 default;
server_name _;
return 403;
}
403页面没有权限访问
444直接打断链接
5xx 返回服务器错误
上面只阻止了80端口
443端口如果按照80端口配置,会导致443端口的所有网站都不能访问
443端口需要配置证书才可以正常阻止,证书不能使用网站的证书,需要自己生成一个证书
server
{
listen 80 default;
listen 443 ssl default_server;
server_name _;
return 403;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404 /404.html;
#ssl on;
ssl_certificate_key /etc/nginx/ssl/key/ssl.key;
ssl_certificate /etc/nginx/ssl/key/ssl.crt;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#SSL-END
}
生成证书
进入证书存放目录
创建文件并进入
cd /etc/nginx/ssl
mkdir key
cd key
使用命令生成key,需要设置密码,可以生成以后再删除
openssl genrsa -des3 -out ssl.key 1024
删除密码
mv ssl.key new.key
openssl rsa -in new.key -out ssl.key
rm new.key
根据key文件生成证书请求文件
openssl req -new -key ssl.key -out ssl.csr
需要按照提示输入证书信息
根据生成的两个文件生成证书文件
sudo openssl x509 -req -days 3650 -in ssl.csr -signkey ssl.key -out ssl.crt
3650是证书的有效期 可以自己设定
生成证书后将证书配置到443端口 重启nginx 就可以禁止IP与未配置域名直接访问了