Nginx配置避免IP访问时证书暴露域名
温馨提示:这篇文章已超过346天没有更新,请注意相关的内容是否还可用!
前言
当站点有开启https的时候,如果IP没有限制,直接通过https://ip,访问的话是可以直接获取到网站域名证书信息,这样攻击者就会知道你这台服务器绑定了什么域名了,如下图
解决方案
在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 的错误,也看不到证书信息。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作有参考学习价值
喜欢请点击上方【分享】,如果对您有帮助可点击上方【打赏】打赏本站。谢谢大家对阿豪运维笔记的支持。