Por que o nginx não responde aos nomes de domínio?

1

Eu tenho nginx com os seguintes vhosts:

Um gitlab vhost:

server {
    listen 443; 
    server_name gitlab.mydomain.com;     # e.g., server_name source.example.com;
    server_tokens off;     # don't show the version number, a security best practice
    root /home/git/gitlab/public;

    ssl on;
    ssl_certificate /etc/nginx/ssl/gitlab.crt;
    ssl_certificate_key /etc/nginx/ssl/gitlab.key;
    ...
# individual nginx logs for this gitlab vhost
    access_log  /var/log/nginx/gitlab_access.log;
    error_log   /var/log/nginx/gitlab_error.log;
    ...
}

vhosts padrão para capturar todos os outros nomes de domínio

server {
    listen      80;
    return      444;
}

server {
    listen      443;
    return      444;
}

Mas agora, se for para o gitlab.mydomain.com, só obtenho

Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.

Nada mais. E sem regras padrão, o gitlab.mydomain.com também é acessível por cada *.mydomain.com . Isso é inaceitável.

Como configurar o nginx para que responda apenas aos nomes configurados?

    
por static 13.10.2013 / 15:28

1 resposta

1

Seu servidor padrão da porta 443 não sabe sobre nenhum certificado e, portanto, você está recebendo este erro porque ele não pode fazer SSL sem um. Melhor é definir as linhas ssl * na seção http (ou cada seção do servidor que precisa de SSL) e, em seguida, ter a porta 443 e ssl em cada seção do servidor com o mesmo roteamento que você está procurando.

    
por 16.10.2013 / 04:58