2017-11-24 3 views
1

Ich bin neu in der Web-Servern Welt, wan't ich meine Website https nur zu dienen (für IPv4- & IPV6) so i implementiert die folgenden Schritte aus,Wie Nginx konfigurieren https dienen nur

  1. installieren Sie Letsencrypt.
  2. certbot mit dem Nginx-Plugin installieren.
  3. das Zertifikat erstellen Befehl,

sudo certbot --nginx certonly -d maarath.com -d www.maarath.com

4.manually in meiner Website-Konfigurationsdatei konfigurieren die etc/nginx/site-verfügbar/main wie unten,

server { 
     listen 80 ; 
     listen [::]:80 ; 
     root /var/www/main/; 
     index index.php index.html index.htm; 
     # Make site accessible from http://localhost/ 
     server_name maarath.com www.maarath.com; 
     location/{ 
       try_files $uri $uri/ =404; 
     } 

# HTTPS 

    listen    443 ssl; 
    server_name  maarath.com www.maarath.com; 
    ssl_certificate  /etc/letsencrypt/live/maarath.com/cert.pem; 
    ssl_certificate_key /etc/letsencrypt/live/maarath.com/privkey.pem; 
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers   HIGH:!aNULL:!MD5; 




     location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_split_path_info ^(.+\.php)(/.+)$; 
       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
       fastcgi_index index.php; 
       include fastcgi.conf; 
     } 
     #deny access to .htaccess files, if Apache's document root 
     #concurs with nginx's one 
     location ~ /\.ht { 

     } 
} 
  1. Fahrbefehl nginx -t ohne Probleme.
  2. Neustart nginx.

Das Problem ist meine Website immer noch nicht sicher nach all den oben genannten Schritten, habe ich etwas vermisst oder habe es falsch gemacht? jede Hilfe würde sehr geschätzt werden.

+1

möglicherweise können Sie den Port 80 zu 443 umleiten –

Antwort

2

Faust aus, ich glaube, Ihre Konfiguration die zweiten server { rechts unter # HTTPS

Nur fehlt, dieses Recht zu bekommen, Ihre Website https://maarath.com einen SSL-Fehler führt? Weil es aus meiner Sicht gut funktioniert. Oder meinst du, dass http nicht zu https umgeleitet wird?

Wenn das der Fall hinzufügen

return 301 https://maarath.com$request_uri; 

Um Ihren ersten Server blockieren. Rechts oben

server_name ... 

Dies sollte automatisch alle Anfragen von http zu https umleiten.

1

Wie NullDev erwähnt, ich werde nur die neue funktionierende Konfigurationsdatei hoffen, um jemand anderen zu helfen.

server { 
    listen 80 ; 
    listen [::]:80; 
     server_name maarath.com www.maarath.com; 

    # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response. 
    return 301 https://$host$request_uri; 
} 


server { 
# HTTPS 

    listen    443 ssl; 

     listen [::]:443 ssl; 
     root /var/www/main/ ; 
     index index.php index.html index.htm; 
    server_name  maarath.com www.maarath.com; 

    ssl_certificate  /etc/letsencrypt/live/maarath.com/cert.pem; 
    ssl_certificate_key /etc/letsencrypt/live/maarath.com/privkey.pem; 
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers   HIGH:!aNULL:!MD5; 

     location/{ 
       try_files $uri $uri/ =404; 
     } 




     location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_split_path_info ^(.+\.php)(/.+)$; 
       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
       fastcgi_index index.php; 
       include fastcgi.conf; 
     } 
     #deny access to .htaccess files, if Apache's document root 
     #concurs with nginx's one 
     location ~ /\.ht { 
       deny all; 
     } 
}