NGINX SSL-Zertifikat funktioniert nicht


1

Ich habe an SSL-Inhalten gearbeitet und bin mit 4 Tutorials nicht weiter gekommen ... Ich habe ein SSL für pingrglobe.com gekauft und jetzt versucht, es auf meine Server anzuwenden. Hier ist mein Nginx-Code:

    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 funktioniert hier nicht: https://www.pingrglobe.com


Haben Sie Port 443 in Ihrer Firewall geöffnet?
Pothi Kalimuthu

2
unterstütze den vorherigen Kommentar. curl -I pingrglobe.com curl: (7) Verbindung zu www.pingrglobe.com fehlgeschlagen : 443 ; Verbindung abgelehnt
Astlock

Ändern: hören 443; 443 ssl zu hören;
Andrei Mikhaltsov

Pothi - Ich habe keine Firewall aktiviert. Andrei - Geändert ... immer noch nichts!
Matrixdevuk

Hier ist etwas Interessantes: root @ server2: ~ # nginx -t nginx: [emerg] "http" Direktive ist hier in /etc/nginx/sites-enabled/pingrglobe.com nicht erlaubt: 1 nginx: Konfigurationsdatei / etc / nginx / nginx.conf-Test fehlgeschlagen
Matrixdevuk

Antworten:


1

Ersetzen Sie Ihren vorhandenen vollständigen Dateiinhalt durch den folgenden nginx -t, wenn Sie zurückmelden, was gesagt wird, wenn Sie es immer noch nicht können 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;
    }

}

0

Ich hatte das gleiche Problem. Das Folgende hat bei mir funktioniert.

In Bestellversionen von Nginx gehörte die http {} -Direktive zum Standard und enthielt die standardmäßige server {} -Direktive.

In neueren Versionen befindet sich die http-Direktive in einer eigenen Datei mit dem Namen nginx.conf und enthält alle Dateien, mit denen in sites-enabled / verlinkt wurde.

In den meisten Lernprogrammen wird angegeben (oder impliziert), dass Sie einen http-Block in der Datei Ihres virtuellen Hosts erstellen und die ssl-Direktiven darin einfügen sollten. Dies führt jedoch dazu, dass die http-Direktive im vhost in die http-Direktive in der Datei nginx.conf einbezogen wird, und löst den folgenden Fehler aus : "http" directive is not allowed here
(Oder ähnliche not allowed hereFehler, wenn Sie andere Befehle vor sich haben.)

Die Lösung besteht einfach darin, die SSL-Direktiven direkt in die Datei nginx.conf aufzunehmen, anstatt eine neue http-Direktive in der vhost-Datei zu erstellen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.