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?