打印

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

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,不知道是不是这个问题。

TOP

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

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

TOP

回复 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不正确,个人感觉应该不是。
然后就有点懵了。

TOP

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

TOP

回复 4# 的帖子

  我放弃了...怎么改都不对...-0- 防止再出现...重新重装系统了....重新试试...

TOP