nginx domínios usando escutas SSL cert mas inacessíveis

2

Eu tenho vários domínios e vários domínios usando certificados SSL em execução no nginx. Todos os domínios usam basicamente a mesma configuração, substituindo os nomes, é claro, exceto pelos domínios habilitados para HTTPS que eu tenho as configurações de SSL especificadas. Entre esses dois domínios, a configuração também é a mesma para SSL, com exceção dos nomes de arquivos para chaves e outros. Cada site também está sendo executado em seu próprio IP dedicado. (todos eles)

Todos os meus sites não SSL estão funcionando bem. Eu posso acessá-los sem problemas. Todos os meus sites SSL recebem um erro 521 do CloudFlare. (SSL estrito está ligado, apenas fyi)

Um dos domínios que eu tinha configurado anteriormente estava funcionando bem. Mesmo se eu remover o outro domínio habilitado para SSL, ainda não funcionará agora. A única alteração de configuração que fiz foi adicionar um novo domínio que também estava usando um certificado SSL. Quando eu testo a configuração com o nginx ele diz que está tudo bem. Quando eu verifico o netstat, posso ver esses IPs na escuta sobre o 443. Não vejo nenhum erro no / var / log / syslog ou nos logs de acesso e erro do nginx.

nginx.conf principal

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

Exemplo de conf do site SSL em /etc/nginx/conf.d

server {
    listen       [IPv6 address]:443;
    server_name  domain;
    ssl on;

    ssl_certificate      /etc/nginx/domain.crt;
    ssl_certificate_key  /etc/nginx/domain.key;

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout  5m;

    ssl_protocols TLSv1.2;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    add_header Strict-Transport-Security max-age=31536000;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /srv/domain/www;
        index  index.html index.htm index.php;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #    root           html;
        fastcgi_pass   unix:/run/domain.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /srv/domain/www$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
    
por visionviper 25.12.2014 / 18:27

1 resposta

1

Ok, então aqui está o que o problema acabou sendo. Presumi que, se você ativasse o SSL completo (estrito), o CloudFlare sempre se conectaria ao seu site por HTTPS. Obviamente não é assim que funciona. Se você tentar visitar um site usando HTTP, o CloudFlare ainda se conectará ao seu servidor por HTTP.

Tudo o que eu precisava fazer era adicionar uma regra de página em cada domínio para forçar o redirecionamento para HTTPS.

Então não foi nginx, foi só eu ser burro.

    
por 25.12.2014 / 21:07

Tags