Estou tentando configurar o HTTPS para o nginx no Ubuntu 16.04. Eu já configurei com listen 443 ssl
instruções, e disse onde encontrar o certificado e arquivos de chave privada. Depois disso, reiniciei o servidor com sudo service nginx restart
.
Agora, quando eu curl https://my_ip_address
, recebo a seguinte mensagem:
curl: (35) gnutls_handshake() failed: Handshake failed
Eu verifiquei os dois arquivos de log que eu conheço, /var/log/nginx/access.log
e /var/log/nginx/error.log
; mas não mostra nenhum vestígio de nada do pedido.
Minha pergunta: Alguma coisa é registrada quando o handshake SSL falha? Se sim, onde? Em geral, como solucionar problemas como este, onde há um erro no protocolo SSL antes que a solicitação HTTP seja enviada ou extraída pelo servidor?
EDIT: Eu tenho que trabalhar, removendo as seguintes linhas da minha configuração:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
Atualização: a linha ssl_ecdh_curve secp384r1;
parecia estar causando o problema. Sem isso, tudo funciona bem, mas com isso, o handshake SSL falha. Curiosamente, a mensagem de erro é que não há "cifra compartilhada". Eu não tenho certeza do que isso faz, então eu apenas removi. Eu também removi o material do ssl_stapling porque eu não sei para que serve, e ele estava criando suas próprias mensagens de erro