Certificado SSL NGINX não funciona

1

Eu tenho trabalhado em material SSL e não chego a parte alguma com 4 tutoriais ... Eu comprei um SSL para pingrglobe.com e agora estou tentando aplicá-lo em meus servidores. Aqui está o meu código nginx:

    http {
      server {
            listen 80;

            server_name pingrglobe.com;
            rewrite ^(.*) http://www.pingrglobe.com$1 permanent;
      }
      server {
        listen 443;
        ssl on;
        ssl_certificate /etc/nginx/ssl/pingrglobe.crt;
        ssl_certificate_key /etc/nginx/ssl/pingrglobe.key;
        #enables SSLv3/TLSv1, but not SSLv2 which is weak and should no longer be used.
        ssl_protocols SSLv3 TLSv1;
        #Disables all weak ciphers
        ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
        server_name www.pingrglobe.com;

            root /var/www/pingrglobe.com;
            index index.html index.php;

            location / {
                try_files $uri $uri/ @extensionless-php;
                add_header Access-Control-Allow-Origin *;
            }

            rewrite ^/blog/blogpost/(.+)$ /blog/blogpost?post=$1 last;  
            rewrite ^/viewticket/(.+)/(.*)$ /viewticket?tid=$1&$2 last;
            rewrite ^/vemail/(.+)$ /vemail?eid=$1 last;
            rewrite ^/serversettings/(.+)$ /serversettings?srvid=$1 last;
            rewrite ^/notification/(.+)$ /notification?id=$1 last;
            rewrite ^/viewreport/(.+)$ /viewreport?srvid=$1 last;
            rewrite ^/removeserver/(.+)$ /removeserver?srvid=$1 last;
            rewrite ^/staffviewticket/(.+)/(.*)$ /staffviewticket?tid=$1&$2 last;
            rewrite ^/activate/(.*)/(.*)/(.*)$ /activate?user=$1&code=$2&email=$3 last;
            rewrite ^/activate2/(.*)/(.*)/(.*)$ /activate2?user=$1&code=$2&email=$3 last;
            rewrite ^/passwordtoken/(.+)/(.*)/(.*)$ /passwordtoken?user=$1&token=$2&email=$3 last;
            location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }

            location @extensionless-php {
               rewrite ^(.*)$ $1.php last;
            }

            location ~ /\. {
               deny all;
            }
      }
    }

SSL não funciona como você vê aqui: link

    
por matrixdevuk 28.10.2013 / 07:17

2 respostas

1

Substitua seu conteúdo de arquivo completo existente pelo seguinte quando relatar o que nginx -t diz, se você ainda não conseguir reload .

# Redirect ALL non-https traffic to https
server {
    server_name pingrglobe.com *.pingrglobe.com;
    return 301 https://$server_name$request_uri;
}

# Redirect www to non-www
server {
    listen                 443 ssl;
    server_name            www.pingrglobe.com;
    return 301 $scheme://pingrglobe.com$request_uri;
}

server {
    listen                 443 ssl;
    server_name            pingrglobe.com;
    ssl_certificate        ssl/pingrglobe.crt;
    ssl_certificate_key    ssl/pingrglobe.key;
    ssl_protocols          SSLv3 TLSv1;
    ssl_ciphers            ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
    root                   /var/www/pingrglobe.com;
    index                  index.php index.html;

    location / {
        location ~ /\. {
            return 403;
        }

        add_header Access-Control-Allow-Origin *;

        rewrite ^/blog/blogpost/(.+)$ /blog/blogpost?post=$1 last;  
        rewrite ^/viewticket/(.+)/(.*)$ /viewticket?tid=$1&$2 last;
        rewrite ^/vemail/(.+)$ /vemail?eid=$1 last;
        rewrite ^/serversettings/(.+)$ /serversettings?srvid=$1 last;
        rewrite ^/notification/(.+)$ /notification?id=$1 last;
        rewrite ^/viewreport/(.+)$ /viewreport?srvid=$1 last;
        rewrite ^/removeserver/(.+)$ /removeserver?srvid=$1 last;
        rewrite ^/staffviewticket/(.+)/(.*)$ /staffviewticket?tid=$1&$2 last;
        rewrite ^/activate/(.*)/(.*)/(.*)$ /activate?user=$1&code=$2&email=$3 last;
        rewrite ^/activate2/(.*)/(.*)/(.*)$ /activate2?user=$1&code=$2&email=$3 last;
        rewrite ^/passwordtoken/(.+)/(.*)/(.*)$ /passwordtoken?user=$1&token=$2&email=$3 last;

        location ~ \.php$ {
            include          fastcgi_params;
            fastcgi_index    index.php;
            fastcgi_param    PATH_INFO          $fastcgi_path_info;
            fastcgi_param    PATH_TRANSLATED    $document_root$fastcgi_path_info;
            fastcgi_param    SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_param    SCRIPT_NAME        $fastcgi_script_name;
            fastcgi_pass     unix:/var/run/php5-fpm.sock;
            try_files        $uri =404;
        }

        try_files $uri $uri/ @extensionless-php;
    }

    # The try_files directive in the php block mitigates security risks.
    location @extensionless-php {
        rewrite ^(.*)$ $1.php last;
    }

}
    
por 29.10.2013 / 23:42
0

Eu tive o mesmo problema. O folllowing é o que funcionou para mim.

Em versões do Nginx, a diretiva http {} fazia parte do padrão e incluía a diretiva {} do servidor padrão.

Em versões mais recentes, a diretiva http está em seu próprio arquivo, chamado nginx.conf, e inclui todos os arquivos que foram vinculados em sites habilitados /

A maioria dos tutoriais declara (ou sugere) que você deve criar um bloco http no seu arquivo de host virtual e colocar as diretivas ssl dentro dele. No entanto, isso faz com que a diretiva http no vhost seja incluída na diretiva http em nginx.conf e lança o erro: "http" directive is not allowed here
(Ou similares not allowed here erros se você tiver outros comandos antes.)

A solução é simplesmente incluir as diretivas SSL diretamente no nginx.conf em vez de criar uma nova diretiva http dentro do arquivo vhost.

    
por 19.01.2014 / 13:00