Me doy cuenta de que esto parece un duplicado de al menos algunas otras preguntas, pero las he leído varias veces y todavía estoy haciendo algo mal.
Los siguientes son los contenidos de mi archivo de configuración nginx myexample.com ubicado en /etc/nginx/sites-available
.
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name myexample.com www.myexample.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/myexample.com;
index index.html index.htm;
}
Funciona, cuando voy a https://myexample.com se sirve el contenido y la conexión es segura. Entonces esta configuración parece ser buena.
Ahora, si cambio el puerto SSL a 9443 y vuelvo a cargar la configuración de nginx, la configuración se vuelve a cargar sin error, pero visitar https://myexample.com muestra un error en el navegador (no se puede acceder a este sitio / myexample.com se negó a conectar. ERR_CONNECTION_REFUSED)
He intentado sugerencias y documentación aquí , aquí y aquí (entre otros) pero siempre recibo el error ERR_CONNECTION_REFUSED.
Debo señalar que puedo usar un puerto no estándar y luego escribir explícitamente ese puerto en la URL, por ejemplo, https://myexample.com:9443 . Pero no quiero hacer eso. Lo que quiero es que un usuario pueda escribir myexample.com en cualquier navegador y que nginx redirija a la conexión segura automáticamente.
Nuevamente, no tengo ningún problema cuando uso el puerto estándar 443 SSL.
Editar: estoy usando nginx / 1.6.2 en debian / jessie
Respuestas:
Para poder escribir " https://myexample.com " en su navegador y que la
nginx
configuración la escuche en el puerto 9443, necesitará unanginx
configuración adicional que todavía escuche en el puerto 443, ya que ese es el puerto IP para que el navegador se conecta .Así:
Observe que se necesita el mismo certificado / clave para ambas secciones, ya que el certificado generalmente está vinculado al nombre de host DNS, pero no necesariamente al puerto.
¡Espero que esto ayude!
fuente
Cuando escribe https://example.com , el estándar para el esquema https: // es conectarse al puerto 443. En su caso, ha movido su servidor para que ahora escuche en el puerto 9443. Se rechaza la conexión mensaje debido a esto: nada está escuchando en el puerto 443.
Deberá hacer arreglos para que escuche algo en el puerto 443 que redirija las conexiones al puerto 9443 o use un puerto como parte de la URL.
fuente
si cambia el puerto a uno no estándar como 9443, debe agregar una redirección de 443 a 9443. Configure nginx para invertir el proxy en ese puerto.
fuente