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

Achtung: Diese Seite ist nur noch Teil eines Archivs und wird in Zukunft entfernt.

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.
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

963 mal gelesen

Kommentare 0

Es wurden keine Einträge gefunden.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen