Falha na configuração SSL do Nginx

1

Eu configurei o SSL no meu LEMP com um certificado autoassinado de acordo com as instruções aqui: link

A ÚNICA exceção é o default_server , o qual eu não poderei usar porque este será um servidor multi-vhost (eventualmente)

Nada falha durante todo o processo até que eu tente navegar no site via HTTPS, ele falha com Secure Connection Failed sem nenhuma outra opção para ignorar. (Espero um erro com base no certificado autoassinado, mas no Firefox geralmente há o botão 'Avançado' com o qual posso ignorar.)

Também verifiquei que as portas apropriadas estão abertas para o servidor via netstat -ntlp

Vocêpodenavegarpelositeaquisequiserveramensagemdeerro: link (não é produção, então estou não é real preocupado com isso ...)

A execução de curl -I https://www.azem.us/ está me retornando o seguinte erro: curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.

O que realmente me pegou, não há nada em um log de erros configurado.

O que posso fazer para corrigir isso e conseguir exibir esses sites com SSL?

NOTA: Isso também acontece com um certificado SSL adequado de uma autoridade de certificação real

Diagnóstico de progresso A execução de openssl s_client -connect www.azem.us:443 está me retornando algumas informações interessantes:

CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1474399712
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

Eu provavelmente estou fora do meu pensamento, mas isso não significa que os certificados não existem no servidor? Eu posso verificar se eles realmente existem e estão configurados corretamente no meu nginx.conf

E com: openssl s_client -verify www.azem.us:443 Retorna:

verify depth is 0
connect: Connection refused
connect:errno=111

Por nmap de outra máquina

Host is up (0.0043s latency).
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

telnet pode se conectar, mas imediatamente fecha a conexão ao tentar a porta 443

GIT REPO para configuração: link

Finalmente chegando em algum lugar ... Eu mudei o nível error_log para o nginx.conf principal e agora estou recebendo um erro no log: 2016/09/21 08:22:58 [error] 29557#29557: *4 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: this.is.my.ip, server: 0.0.0.0:443

    
por Kevin 20.09.2016 / 20:42

1 resposta

2

Depois de muita discussão e deliberação aqui, descobri qual era o problema.

No meu principal nginx.conf , eu estava definindo as diretivas listen para a porta 80 e 443

Depois de removê-los e adicioná-los às configurações do VHost, ele começou a funcionar.

    
por Kevin 21.09.2016 / 17:25