„The plain HTTP request was sent to HTTPS port“ unter nginx beheben

Nutzt man in seiner Server-Konfiguration sowohl HTTP als auch HTTPS und verbindet die Webseite mit PHP, so kann es schnell vorkommen, dass man von nginx den Fehler „The plain HTTP request was sent to HTTPS port“ erhält.

Grund dafür ist, dass man eine Anfrage über HTTP absendet, welche über den Port 443, der für HTTPS genutzt wird, leitet. Das geschieht durch PHP, da der FastCGI-Prozess nicht weiß, wie er mit HTTPS umgehen soll. Daher verarbeitet er die Daten einfach als unverschlüsseltes HTTP.

Um das zu ändern, braucht der FastCGI-Prozess einen entsprechenden Parameter, um HTTPS zu verarbeiten. Dieser Parameter wäre wie folgt:
fastcgi_param HTTPS on;

Dabei muss man beachten, dass dieser FastCGI-Parameter lediglich für den virtuellen Host in nginx gilt, welcher auch HTTPS nutzt. Ansonsten versucht PHP, jede Anfrage über HTTPS zu verarbeiten, was jedoch bei anderen Webseiten, welche nur über HTTP aufrufbar sind, nicht funktioniert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.