替谁征天下 发表于 2017-8-1 23:57:43

https中的301重定向www.a.com到不带a.com的问题

server
    {
      listen 80;
      #listen [::]:80;
      server_name a.com www.a.com ;
      
                return 301 https://a.com$request_uri;
    }

server
    {
      listen 443 ssl http2;
      #listen [::]:443 ssl http2;
      server_name a.com ;
      index index.html index.htm index.php default.html default.htm default.php;
      root/home/wwwroot/a.com;
      ssl on;
      ssl_certificate /etc/letsencrypt/live/a.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/a.com/privkey.pem;
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;
      ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
      ssl_session_cache builtin:1000 shared:SSL:10m;
      # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
      ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

      include wordpress.conf;
      #error_page   404   /404.html;

      # Deny access to PHP files in specific directory
      #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

      include enable-php.conf;

      location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
      {
            expires      30d;
      }

      location ~ .*\.(js|css)?$
      {
            expires      12h;
      }

      location ~ /.well-known {
            allow all;
      }

      location ~ /\.
      {
            deny all;
      }

      access_log off;
    }

server
    {
      listen 443 ssl http2;
      #listen [::]:443 ssl http2;
      server_name www.a.com ;
      index index.html index.htm index.php default.html default.htm default.php;
      root/home/wwwroot/a.com;
      ssl on;
      ssl_certificate /etc/letsencrypt/live/a.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/a.com/privkey.pem;
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;
      ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
      ssl_session_cache builtin:1000 shared:SSL:10m;
      # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
      ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
               
                return 301 https://a.com$request_uri;
       




http能顺利重定向到https的a.com,但是不管怎么改https的那个重定向www.a.com到a.com的里面的代码,包括放到前面,放到后面,把所有的SSL相关的东西都放进去,以及把a.com里面的所有内容放进去,在IE跟Safari上面访问都会不被信任。
网上也查了很多资料,但是似乎都对我没用...搭建的网站是wordpess,并且是在lnmp创建host的时候直接选择的添加SSL,不知道是不是这个问题。

licess 发表于 2017-8-2 12:20:48

wordpress 程序的本身就自带301,如果用 a.com 安装的,绑定的www.a.com 域名访问时会自动 301 到 a.com

不信任的问题,没有具体IE版本和win版本信息没法说,xp上的话是肯定不行的

替谁征天下 发表于 2017-8-2 14:30:16

回复 2# 的帖子

军哥,wordpress是会自动跳转,以前有个wp搭建的是绑定的www.b.com,用301跳转http跟不带www的到https的www.b.com,不会提示证书不受信任的问题,b网站是先用lnmp添加了网站,网站搭建好了之后才添加的SSL。

Windows版本是1703,IE11,Edge,Safari都会提示此网站不安全,要求点确认才能继续访问。Chrome倒是不会提醒,直接就跳转到a.com了。

网上说curl可以测试什么之类的,我也不是太了解...就试了下,http的都成功显示301,https a.com也会显示内容。
curl -l https://www.a.com
会报错:
curl: (51) SSL peer certificate or SSH remote key was not OK
似乎说的是证书不正确,但是我只是把 nginx里面 a.com的配置复制过去了而已啊,也没有改证书之类的。
SH不正确,个人感觉应该不是。
然后就有点懵了。

licess 发表于 2017-8-2 17:05:47

不清楚你生成证书时如果只输入了 a.com 的话肯定没 www.a.com 的证书肯定就显示不受信任

替谁征天下 发表于 2017-8-2 19:12:12

回复 4# 的帖子

:L我放弃了...怎么改都不对...-0- 防止再出现...重新重装系统了....重新试试...
页: [1]
查看完整版本: https中的301重定向www.a.com到不带a.com的问题