当前位置:   article > 正文

解决Nginx同服务器下未配置SSL站点访问默认站点的问题_nginx中通一个server配置不含ssl的

nginx中通一个server配置不含ssl的

解决Nginx同服务器下未配置SSL站点访问默认站点的问题

描述

        Nginx在访问未配置SSL站点的时候会先访问默认配置过SSL的站点。距离A站点配置了SSL,B站点未配置,此时访问B站点的HTTPS则会显示A站点的内容,对于这个问题,官方的说法是:【在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点】。但是即使设置了默认站点,还是存在这个问题。

解决方案- - -defalut_server指令

      首先了解nginx的查找规则,第一次查找配置文件里有无匹配的域名,如未找到,则查找default_server,如default_server未设置,则默认匹配配置文件排序后的第一个。所以根据规则,我们可以为443端口设置一个无效的default_server来解决这个问题。

以下是配置:

  1. server {
  2. listen 443 default_server;
  3. server_name _ ;
  4. ssl on;
  5. ssl_certificate xxx.crt;
  6. ssl_certificate_key xxx.key;
  7. return 444;
  8. }

注意:以下这两个参数必须填写,否则会导致所有SSL站点无法访问。证书可以为无效也可以为任意。(此处为坑)

 ssl_certificate        xxx.crt;                
 ssl_certificate_key    xxx.key;

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/197389
推荐阅读
相关标签
  

闽ICP备14008679号