Não é possível acessar o servidor Nginx após configurar o SSL

2

Eu tenho uma versão de desenvolvimento de um site do Django com o nome de domínio "mysite.com" Eu costumava acessar o meu site pela URL " link ". Acabei de instalar um certificado digital curinga e agora não consigo acessar o site. Se eu usar " link " ou " link ", Recebo uma mensagem rápida" ERR_CONNECTION_REFUSED ". Li o documento SSL do Nginx, várias postagens de blog sobre a configuração do SSL no Nginx e pesquisei esse erro, mas não consigo entender o que está errado.

Meu servidor é Debian 8.7. Estou executando o Nginx 1.6.2 e "--with-http_ssl_module" é um dos argumentos de configuração. Eu também estou usando o arquivo nginx.conf padrão. O processo nginx é executado sob a conta padrão 'www-data'.

Meu certificado e arquivo de chave privada estão localizados neste diretório:

drwr-xr-x   root  root  /srv/ssl/mysite.com/

Aqui estão os meus arquivos de certificado e chave privada que residem no diretório acima:

-r--r-----  root  www-data  ssl-bundle.crt
-r--r-----  root  www-data  mysite.com.key

Quando eu configurei o certificado curinga, eu especifiquei "* .mysite.com" como o nome comum.

Aqui está o meu arquivo /etc/nginx/sites-enabled/mysite.conf:

server_tokens off;
upstream gunicorn {
    server 127.0.0.1:8000 fail_timeout=0;
}

server {
    #listen 80;
    listen 443 ssl;
    server_name web01.mysite.com;
    ssl_certificate /srv/ssl/mysite.com/ssl-bundle.crt;
    ssl_certificate_key /srv/ssl/mysite.com/mysite.com.key;

    location / {
        root /srv/http/mysite.com/repo;

        # Redirect all HTTP requests to HTTPS
        rewrite ^ https://$server_name$request_uri permanent;
    }

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    client_max_body_size 4G;
    keepalive_timeout 5;

    # Pass static file requests to the file server
    location /static/ {
        proxy_pass http://45.33.33.53;
    }
    location /media/ {
        alias /var/www/mysite.com/media/;
    }

    try_files $uri @django;

    location @django {
        proxy_pass http://gunicorn;
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;

        # Capture originating IP address of client
        # This allows me to view the HTTP_X_FORWARDED_FOR field in request.META
        # in my login_firewall view.
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Eu abri a porta 443 no meu firewall:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  loopback/8           anywhere             reject-with icmp-port-unreachable
ACCEPT     icmp --  anywhere             anywhere             state NEW icmp echo-request
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh state NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http state NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https state NEW
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables_INPUT_denied: "
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables_FORWARD_denied: "
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Se eu fizer "sudo netstat -plnt | grep nginx", posso ver que o Nginx está escutando na porta 443:

tcp   0   0 0.0.0.0:443   0.0.0.0:*   LISTEN    25537/nginx -g daem

Eu verifiquei o log de erros do nginx (com a depuração ativada) e está vazio. Eu recarreguei os arquivos de configuração do nginx depois que os alterei.

O ssl.conf precisa ser incluído a partir do nginx.conf ou do meu arquivo mysite.conf? Essa resposta menciona isso como um requisito, mas não o fiz veja isso discutido nos documentos do Nginx e em qualquer um dos artigos de configuração que eu leio on-line.

Alguém vê o que estou fazendo errado?

    
por Jim 31.01.2017 / 23:49

1 resposta

0

Parece que você está redirecionando de https para https causando um loop de redirecionamento. Não sei por que você estaria recebendo uma mensagem recusada da conexão, mas o seu comentário acima confirma isso.

Seu segundo problema, 403 Proibido, é provavelmente um problema de permissão. O usuário Nginx está executando como (diretiva de usuário em nginx.conf) tem permissão para os recursos que o bloco de localização aplicável está referenciando?

    
por 01.02.2017 / 02:21