Redirecionar todos os subdomínios para o domínio principal com HTTPS sem um certificado curinga (nginx)

3

Eu tenho um nome de domínio com um site principal e alguns vhosts. Eu quero que todos os sites (main e vhosts) só sejam acessíveis por meio de HTTPS (usando HSTS), e eu quero que os subdomínios não existentes sejam redirecionados para o site principal.

Para resumir o que eu quero:

  • link
  • link
  • link
  • link
  • link
  • link

Estou muito perto disso, mas o segundo ao último redirecionamento não funciona. Estou usando um certificado de Vamos criptografar , que não oferece certificados de curinga no momento, portanto, o certificado só é válido para o domínio principal e os vhosts (que eu listei explicitamente quando criei o certificado). Como o certificado é inválido, os navegadores bloqueiam a conexão.

Qual seria o melhor caminho (se algum) para contornar este problema?

Aqui está a minha configuração (simplificada) do nginx, se ajudar:

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

server {
    listen 443 spdy;
    server_name _;
    # SSL settings snipped for brevity. SPDY and HSTS are enabled.
    return 301 https://example.com$request_uri;
}

server {
    listen 443 spdy;
    server_name example.com;
    root /var/www/example.com;
    index index.html index.htm;
}

server {
    listen 443 spdy;
    server_name vhost.example.com;
    root /var/www/vhost.example.com;
    index index.html index.htm;
}
    
por Joe La Frite 07.12.2015 / 00:52

1 resposta

2

Praticamente, você não pode contornar o problema sem um certificado curinga. Se você não puder apresentar um certificado que corresponda ao nome solicitado, você receberá um erro de conexão - é uma parte fundamental do protocolo.

Suponho que, em teoria, você poderia escrever algo que, quando recebesse um cabeçalho SNI para um nome que não estivesse no certificado, emitisse um certificado rápido de Let's Encrypt e enviasse o certificado recém-criado no handshake TLS , mas ... bem, não é exatamente uma solução prática , é?

    
por 07.12.2015 / 04:29