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

阿豪运维笔记(阿豪同学) 2022-02-16 1.17 K阅读

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

前言

当站点有开启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

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作有参考学习价值
喜欢请点击上方【分享】,如果对您有帮助可点击上方【打赏】打赏本站。谢谢大家对阿豪运维笔记的支持。

文章作者: 阿豪运维笔记(阿豪同学)
本文链接:
文章版权:站长码字很辛苦,除非注明,否则均为阿豪运维笔记原创文章,转载或复制请以超链接形式并注明出处。

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