2017-06-05 1 views
0

Je dois réécrire des URL comme * .lang.domain.com sur lang.domain.com et j'ai réussi à le faire en utilisant le module de réécriture nginx. J'ai le certificat wildcard * .domain.com et il ne peut pas sécuriser le domaine de niveau 4 comme test.lang.domain.com Le principal problème est que les utilisateurs de type https://bla-bla.lang.domain.com dans leur navigateur obtiennent d'abord un avis sur la connexion n'est pas sécurisé. Ensuite, ils doivent cliquer sur Avancé et continuer https://bla-bla.lang.domain.com (non sécurisé). Après cela, ils seront redirigés vers https://lang.domain.com. Donc, ma question est de savoir s'il est possible de faire de la redirection avant que la connexion https ait été établie dans nginx? Ou peut-il être atteint à un niveau supérieur?Réécriture de l'URL https avant chiffrement

server { 
    listen  80 default; 
    server_name www.domain.com domain.com *.domain.com; 

    if ($host ~* "^.+\.(.+\.domain\.com)$") { 
     set "$domain" "$1"; 
     rewrite ^(.*)$ https://$domain$uri permanent; 
    } 

    return 301 https://$host$request_uri; 
} 

server { 
    listen  443 default; 
    server_name www.domain.com domain.com *.domain.com; 

     if ($host ~* "^.+\.(.+\.domain\.com)$") { 
     set "$domain" "$1"; 
    rewrite ^(.*)$ https://$domain$uri permanent; 
    } 

    ssl     on; 
    ssl_certificate  /etc/ssl/domain.com/domain.com.ca-bundle; 
    ssl_certificate_key /etc/ssl/domain.com/domain.com.key; 

    include "conf.d/ssl_settings.default"; 
    include "conf.d/redirect.ssl.default"; 
    include "conf.d/logger_front.default"; 

    location/{ 
     proxy_set_header Host $host; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header HTTPS on; 
     proxy_pass https://somestream; 
    } 
} 

Répondre

0

Redirects arrive after est établi une connexion sécurisée. Donc non, vous ne pouvez pas avoir de redirection pour gérer votre cas particulier.