1 votos

Nginx SSL en localhost

Estoy tratando de configurar SSL en mi localhost usando Nginx. He creado un certificado auto-firmado y a mi la configuración de Nginx es la siguiente:

server {
  listen 443 ssl;
  server_name localhost;

  root /usr/share/nginx/html;
  index index.html index.htm;

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

  ssl_session_timeout 5m;

  ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
  ssl_prefer_server_ciphers on;

  location / {
        try_files $uri $uri/ =404;
  }
}

Pero cuando intento acceder me da el siguiente error

$ curl -i https://localhost            
  curl: (7) Failed to connect to localhost port 443: Connection refused

¿Cuál podría ser la posible causa de este error?

Esta es la salida del comando 'netstat -tuplen'

tcp    0     0 0.0.0.0:443     0.0.0.0:*      LISTEN     0    71662       - 

1voto

Michael Hampton Puntos88271

Le falta un listen directiva:

listen [::]:443 ssl;

Esto le dice a nginx para escuchar las conexiones IPv6. Su actual listen directiva sólo escucha por conexiones IPv4, y esto se confirma en su netstat de salida.

La razón de esto es necesario (además de la ya existente listen directiva) es que localhost se resuelve en una dirección IPv6 ::1 , además del histórico de direcciones IPv4 127.0.0.1. Pero, IPv6 es el protocolo preferido para realizar las conexiones. Por lo tanto curl está intentando conectarse a nginx a través de IPv6 y fallando.

Por supuesto, en el mundial de Internet que usted es (probablemente) el tiempo de su sitio, usted también tendrá que usar IPv6, ya sea ahora o en el futuro cercano. Así que usted debe prepararse para este día de hoy.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

;