nginx / ssl: sempre redireciona para um dos dois subdomínios https [duplicados]

1

Meu servidor da web suporta os dois subdomínios a seguir:

Eu quero criar minha configuração nginx para que:

  1. link $ request_uri = > link $ request_uri
  2. link $ request_uri = > link $ request_uri
  3. Todos os outros subdomínios são independentes de http ou https = > link $ request_uri

Não consegui encontrar nenhuma solução on-line que resolva esse problema. Alguém pode me ajudar com a configuração nginx correta.

    
por paskster 12.01.2016 / 22:46

1 resposta

2

Antes de mais nada, você deve entender que não é possível fazer um redirecionamento https "transparente" de https://something.example.com para https://www.example.com se o certificado SSL não der suporte a something.example.com domain. Ele mostrará Your connection is not secure error ou similar, quando acessado. No entanto, você deve poder redirecionar de http://*.example.com para https://www.example.com sem nenhum problema. Para fazer isso, adicione o seguinte em cima do seu nginx.conf :

server {
    listen 80;
    default_server;
    server_name  _;
    return 301 https://www.example.com$request_uri;
}

Ele deve redirecionar qualquer solicitação para o seu IP para https://www.example.com

Em seguida, adicionamos configurações para redirecionamentos específicos. Este para http://en.example.com - > https://en.example.com :

server {
    listen 80;
    server_name en.example.com;
    return 301 https://en.example.com$request_uri;
}

Este para http://www.example.com - > https://www.example.com :

server {
    listen 80;
    server_name www.example.com;
    return 301 https://www.example.com$request_uri;
}

Por fim, adicionamos configuração para domínios "reais" que devem veicular o conteúdo desejado via SSL. Este aqui para http://www.example.com :

server {
    listen 443 ssl;
    ssl_certificate /etc/ssl/www.example.com.crt;
    ssl_certificate_key  /etc/ssl/www.example.com.key;
    server_name www.example.com;
    <your www.example.com server config here>
    ...
    </your www.example.com server config here>
}

Este aqui para http://en.example.com :

server {
    listen 443 ssl;
    ssl_certificate /etc/ssl/en.example.com.crt;
    ssl_certificate_key  /etc/ssl/en.example.com.key;
    server_name en.example.com;
    <your en.example.com server config here>
    ...
    </your en.example.com server config here>
}
    
por 12.01.2016 / 22:55