Seu script de configuração não está com bugs.
Com sua configuração atual (supondo que você tenha um Certificado SSL de assunto único padrão instalado), isso não é uma opção .
A razão para isso é a maneira como as conexões https funcionam:
When a client (the browser), issues a https request to the server (nginx), it initiates an SSL session by way of an SSL handshake. When, and only when, the handshake succeeds and the session is established, the browser sends the actual HTTP request containing the hostname. Since SSL/TLS is not only a way to provide encryption for data connections, but also a way for the server to authenticate itself to the client. As part of the authentication process, the browser validates the identity of the server. One of the validation checks is to match the certificate subject name with the hostname that the browser intends to request content from. If this validation fails, the browser issues a warning to the user.
Como o processo de validação falha, o servidor nunca recebe a solicitação HTTP para www.mydomain.com no ouvinte da porta 443 e, portanto, não pode enviar uma resposta de redirecionamento para o cliente / navegador.
Para ativar o redirecionamento do link para o link , você tem algumas opções, mas tudo se resume a isso: você precisa de um certificado com um assunto para cada nome de host.
-
Certificado SAN
- Obtenha um Certificado UC / SAN e tenha www.mydomain.com adicionado como SAN (Nome alternativo do assunto)
- O (s) assunto (s) agora corresponde a solicitações para
mydomain.com
ewww.mydomain.com
-
Múltiplos endereços IP
- Obtenha outro endereço IP para o seu servidor.
- Obter um certificado SSL com o nome do assunto
www.mydomain.com
- Configure o
www.mydomain.com
httpsserver
para escutar no novo endereço IP (ainda porta 443) - Configure o
www.mydomain.com
httpsserver
para usar o novo certificado - Atualize o registro A de www.mydomain.com para apontar para o novo endereço IP em sua zona DNS pública
-
TLS SNI
- Como no exemplo acima, obtenha um certificado SSL com o nome do assunto
www.mydomain.com
- Em vez de usar outro endereço IP, aproveite a extensão TLS do Indicação do nome do servidor .
- Como no exemplo acima, obtenha um certificado SSL com o nome do assunto
Como o SNI tem suporte limitado a navegadores, evito a sugestão 3. Verifique a documentação do nginx no SNI se você gosta (parte inferior da página)
UPDATE : algumas autoridades de certificação oferecem certificados de assunto único com uma SAN adicional grátis para o prefixo www.
.