Wildcard * .localhost SSL com Nginx e Chrome

4

Eu tentei configurar um curinga *.localhost para HTTP e HTTPS com solicitações proxy de Nginx para localhost:3000 . O DNSmasq é usado para resolver *.localhost para 127.0.0.1 .

Tudo funciona bem para HTTP, mas as conexões HTTPS recebem o seguinte erro no Google Chrome:

There are issues with the site's certificate chain (net::ERR_CERT_COMMON_NAME_INVALID).

O certificado é um certificado autoassinado que adicionei ao Chrome por meio de configurações e foi gerado com o seguinte comando:

openssl req -x509 -sha256 -newkey rsa:2048 -keyout localhost.key -out localhost.crt -days 3650 -nodes

O Subject é o seguinte:

Subject: C=AU, ST=Western Australia, L=Perth, O=Zephon, CN=*.localhost

Minha configuração do Nginx é a seguinte:

server {
    listen       80;
    listen       443 ssl; 

    server_name  localhost;

    ssl_certificate /etc/nginx/ssl/localhost.crt;
    ssl_certificate_key /etc/nginx/ssl/localhost.key;

    location / {
        proxy_pass          http://localhost:3000;
        proxy_http_version  1.1;
        proxy_set_header    Host             $host;
        proxy_set_header    Upgrade          $http_upgrade;
        proxy_set_header    Connection       "upgrade";
        proxy_set_header    X-Real-IP        $remote_addr;
        proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header    X-Client-Verify  SUCCESS;
        proxy_set_header    X-Client-DN      $ssl_client_s_dn;
        proxy_set_header    X-SSL-Subject    $ssl_client_s_dn;
        proxy_set_header    X-SSL-Issuer     $ssl_client_i_dn;
        proxy_read_timeout 1800;
        proxy_connect_timeout 1800;
    }
}
    
por thomasfedb 25.10.2016 / 10:32

1 resposta

2

Então, em última análise, a resposta parece ser que você simplesmente não pode criar um certificado para *.localhost que o Chrome aceitará.

Minha solução foi mudar para usar *.dev.localhost , o que funcionou como um tratamento.

    
por 14.04.2017 / 05:30