Nginx将http:// www和裸http / https重定向到https:// www

理查德

我想重定向来自以下域的所有流量:

  • http://domain.com
  • http://www.domain.com
  • https://domain.com

  • https://www.domain.com

我具有上述域的SSL证书。它托管了一个由旅客提供的Rails应用程序。

为了完成裸域重定向,我在DNSimple帐户中设置了URL重定向:

URL domain.com  3600  https://www.domain.com

我的服务器块如下(受Nginx no-www到www和www到no-www等的启发):

server {
    listen          80;
    listen          443;
    server_name     domain.com;

    ssl                             on;
    ssl_certificate                 /etc/ssl/domain-ssl.crt;
    ssl_certificate_key             /etc/ssl/domain.key;
    ssl_session_timeout             5m;
    ssl_protocols                   SSLv2 SSLv3 TLSv1;
    ssl_ciphers                     HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers       on;

    server_tokens   off;
    access_log      /dev/null;
    error_log       /dev/null;

    return 301 https://www.domain.com$request_uri;
}

server {
    listen          443 ssl;
    server_name     www.domain.com;

    root                            /home/deploy/app/current/public;
    passenger_enabled               on;
    passenger_app_env               production;
    passenger_set_cgi_param         HTTP_X_FORWARDED_PROTO https;

    ssl                             on;
    ssl_certificate                 /etc/ssl/domain-ssl.crt;
    ssl_certificate_key             /etc/ssl/domain.key;
    ssl_session_timeout             5m;
    ssl_protocols                   SSLv2 SSLv3 TLSv1;
    ssl_ciphers                     HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers       on;
}

passenger_pre_start https://www.domain.com;

什么有效:

  • 裸域被重定向到安全 https://www
  • http://www 域被重定向到安全 https://www
  • https:// www工程

什么不是:

  • 裸体https://不起作用,浏览器抛出未找到的服务器

基本上我想将所有流量重定向到安全的https://www.domain.com我在这里想念什么?

斯蒂芬·乌尔里希(Steffen Ullrich)

如果您没有domain.com的证书,则无法https://domain.com重定向https://www.domain.com,因为在浏览器获得重定向之前,它必须成功建立SSL连接(https是SSL内的http),并且失败,因为证书不匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Nginx 301将http(裸和www)重定向到https www,并将通配符子域重定向到https

将Nginx HTTP / HTTPS www重定向到非www

是否从htaccess中的裸http和https域重定向到https:// www域?

如何将http重定向到https和将https:// www重定向到https://

Nginx将所有[http / www / https www]重定向到[https non-www]

NGINX 将 http 重定向到 https 和 www。到非 www

将https重定向到https:// www

Nginx-(http / https)非www到www重定向

NGINX:将非www https重定向到https:// www

nginx将非www重定向到www和https

将所有http / www重定向到https:// www

将非www(http)和www(http)重定向到https:// www

NGINX将http重定向到https,将非www重定向到ww

将非www和www http请求重定向到https:// www

Nginx重定向HTTP到HTTPS和WWW到非WWW

入口nginx从www重定向到https

Nginx重定向/重写:www到非www和https

.htaccess文件未重定向http:// www。到https:// www

.htaccess http www 或非 www 重定向到 https

将非www重定向为http和https的www

Nginx:将非www重定向到www https

重定向www。到非www并使用.htaccess将所有http重定向到https

IIS将非www重定向到www并将HTTP重定向到https

将HTTP重定向到HTTPS并添加WWW

将 www https 站点重定向到非 www https 导致 nginx 中的重定向过多

如何通过web.config将http重定向到https和www重定向到非www?

.htaccess将http / https www重定向到https non-www

网址从http://,www和http:// www重定向到仅https://domainname.com

在.htaccess中将http重定向到https并将www重定向到非www