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>
}