Nginx配置避免IP访问时证书暴露域名

阿豪运维笔记 02-16 519阅读

温馨提示:这篇文章已超过98天没有更新,请注意相关的内容是否还可用!

前言

当站点有开启https的时候,如果IP没有限制,直接通过https://ip,访问的话是可以直接获取到网站域名证书信息,这样攻击者就会知道你这台服务器绑定了什么域名了,如下图

image.png

解决方案

在Nginx默认站点设置并配置一个不含正确域名的证书(这个配置比较麻烦还得去生成一个证书,服务器多的话还得一个个去生成这个方案不现实),其实Nginx开发者有考虑到这个问题了,在新版的Nginx版本中已经有完美的解决方案,新增了配置项ssl_reject_handshake,用于拒绝握手,也不会提供显示证书。

在Nginx配置目录下新增一个默认站点,新增如下配置项

server {
    listen 443 default_server;
    server_name _; 
    # 直接拒绝握手
    ssl_reject_handshake on;
}

配置后重新加载Nginx服务,再尝试 IP 访问,会发现浏览器报了 ERR_SSL_UNRECOGNIZED_NAME_ALERT 的错误,也看不到证书信息。

image.png

文章版权声明:除非注明,否则均为阿豪运维笔记原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

Nginx开启Brotli压缩详细教程

Nginx-GUI开源Nginx可视化管理工具部署

Yum安装Nginx时报错:No package nginx available. Error: Nothing to do解决办法

Nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead

Linux下Nginx服务名称修改为任意名字

Ubuntu 16.04编译安装PHP 5.6.31 + Nginx 1.18.0 + MySQL 5.6.51

Centos7系统下yum安装LNMP环境

配置Nginx上的静态网页在访问的时候没有html后缀

取消
微信二维码
微信二维码
支付宝二维码