Não é possível conectar a porta HTTPS no Ubuntu

2

Instalei um novo certificado SSL e configurei o Nginx para usá-lo. Mas as solicitações esgotam quando tentam acessar o HTTPS no site. Quando eu faço telnet para meu domínio na porta 80 ele se conecta, mas expira na porta 443. Não tenho certeza se há alguns padrões no Ubuntu impedindo uma conexão. O cURL também atinge o endereço HTTPS, mas responde ao HTTP normal.

O status do UFW é exibido:

443  ALLOW    Anywhere

netstat -a mostra:

tcp        0      0 *:https                 *:*                     LISTEN  

nmap localhost mostra:

443/tcp  open  https

O bloco relevante na configuração do Nginx é:

server {
    listen 443;
    listen [::]:80 ipv6only=on;
    listen 80;
    root /path/to/app;
    server_name mydomain.com

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Editar: tendo tentado uma gama completa de opções de configuração do nginx, estou realmente duvidando que seja a configuração. Se o ssl-bundle.crt estiver estragado, isso causará o tempo limite? Se assim for, posso reverter para PositiveSSL para suporte.

    
por Simpleton 04.06.2014 / 16:52

3 respostas

1

Tente isto:

server {
    listen 443 ssl;
    listen [::]:80 ipv6only=on;
    listen 80;
    root /path/to/app;
    server_name mydomain.com

    ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

(remova ssl on; , adicione ssl a listen 443; )

    
por 04.06.2014 / 18:57
0

Eu gostaria de concordar com o comentário de Steffen (ouça 443 e ouça 80 no mesmo bloco de servidor).

Por favor, manipule HTTP e HTTPS em diferentes blocos de servidores. Eu suponho que a segunda diretiva de escuta tenha sobrescrito sua primeira diretiva de escuta. Além disso, eu perdi a palavra-chave "ssl" em suas diretivas de escuta para a porta 443.

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    root /path/to/app;
    server_name mydomain.com

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 443 ssl;
    listen [::]:443 ssl ipv6only=on;
    root /path/to/app;
    server_name mydomain.com

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Como o usuário xofer relatou, é possível ter HTTP e HTTPS em um bloco de servidor. Então, um exemplo para esta solução tudo em um também:

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    listen 443 ssl;
    listen [::]:443 ssl ipv6only=on;
    root /path/to/app;
    server_name mydomain.com

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
    
por 04.06.2014 / 18:59
0

O problema não foi Nginx nem foi algo que alguém poderia ter ajudado, então eu vou deixar isso aqui no caso de alguém ter esse problema no futuro.

O problema era que a porta 443 estava fechada no Cloudflare, pois eu estava no plano gratuito. Eles não suportam SSL no plano gratuito.

    
por 05.06.2014 / 10:33