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

Warning: This page is a part of an archive now and will be removed in the future.

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.
About the Author
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.

968 times read

Comments 0

There are not any items at the moment.

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.