# ISPConfig 3 mit nginx und https redirect



## egaldoch (24. Apr. 2013)

Hallo,
ich habe heute den Schritt gewagt und bin von apache2 auf nginx umgestiegen, da mein Provider ohnehin von vServern auf KVM Server umsteigt. Die installation hat wie gewohnt von ISPConfig wunderbar geklappt, alles funktioniert!
Nun zu meinem Problem:
Wenn ich eine Webseite erstelle funktioniert alles, die Verzeichnisse werden korrekt angelegt etc.. Jetzt möchte ich aber eine Webseite (subdomain.example.tld) mit SSL verschlüsseln. Hierzu habe ich die SSL-Zertifikate angelegt und ein Häkchen bei SSL gesetzt. Wenn ich jetzt subdomain.example.tld im Browser öffne, öffnet sich die Webseite unverschlüsselt. Erst wenn ich manuell https://subdomain.example.tld eingebe wird sie verschlüsselt. Ich möchte aber das http automatisch auf https weitergeleitet wird.
Unter Apache habe ich dies erreicht, wenn ich als Apache Directive (bzw. in die .htaccess) folgendes eingetragen habe:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Meine Frage ist jetzt, wie stelle ich diese Regel bei nginx ein?
Im Internet fand ich bereits einen .htaccess zu nginx converter, welcher mir folgende Lösung ausspuckte:
#ignored: condition 0
if ($rule_0 = "1"){
    rewrite /(.*) https://$http_host$uri;
}

Das zeigt bei mir allerdings keine Wirkung.
Hat jemand eine Idee?

Mit freundlichen Grüßen,
egaldoch


----------



## egaldoch (25. Apr. 2013)

Im Internet habe ich folgenden Code gefunden und ihn angepasst bei mir in die Nginx Directives von ISPConfig eingetragen:




> server {     listen   80;     listen   [::]:80;      server_name www.example.com;      return 301 https://$server_name$request_uri; } server {     listen   443 default ssl;      server_name www.example.com;      ssl_certificate        /path/to/my/cert;     ssl_certificate_key  /path/to/my/key; }


Danach habe ich nginx neugestartet, es meldet mir folgendes:



> _nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-enabled/100-subdomain.example.tld.vhost:107
> nginx: configuration file /etc/nginx/nginx.conf test failed_


Anscheinend kann man solche änderungen nicht über die Nginx directives vornehmen. Wenn ich jetzt aber den Code in _/etc/nginx/sites-enabled/100-subdomain.example.tld.vhost:107 _anpasse ändert ihn ISPConfig spätestens beim nächsten Update wieder.

Hat jemand eine Idee wie ich die https-Weiterleitung über die Nginx Directives in ISPConfig einstellen kann?


----------



## egaldoch (25. Apr. 2013)

Desweiteren habe ich festgestellt, dass ISPConfig automaisch eine Weiterleitung vornimmt!
Allerdings nur wenn man die seite mit www.subdomain.domain.tld aufruft, nicht aber mit subdomain.domain.tld.

Warum?


----------



## falko (25. Apr. 2013)

Probier mal diesen .htaccess-Converter:

https://timmehosting.de/htaccess-converter

Ansonsten sollte der Rewrite nach https ungefähr so aussehen:


```
if ($scheme != "https") {
                rewrite ^ https://www.example.com$request_uri? permanent;
       }
```


----------



## egaldoch (25. Apr. 2013)

Danke falko,
mit deinem Code funktioniert es wunderbar, endlich


----------

