Tag: NGINX

  • Nginx 400 Bad Request The plain HTTP request was sent to HTTPS port

    Problem

    When viewing any of my sites using port 80, the following error appeared on non-SSL websites:

    Nginx 400 Bad Request The plain HTTP request was sent to HTTPS port

    Original server block:

    server {
        listen 80;
        listen 443;
    
        ssl on;
        ssl_certificate         /path/to/cert/example.pem;
        ssl_certificate_key     /path/to/cert/example.private.key;
    
        root /path/to/wordpress;
        index index.php;
    
        # Website URL
        server_name blog.duaneleem.com;
    
        # etc...
    }

     

    Solution

    After reading NGINX documentation, the solution to this was to place the SSL directive on “listen.” Here’s a sample server block that demonstrates this:

    server {
        listen 80;
        listen 443 ssl;
    
        ssl_certificate         /path/to/cert/example.pem;
        ssl_certificate_key     /path/to/cert/example.private.key;
    
        root /path/to/wordpress;
        index index.php;
    
        # Website URL
        server_name blog.duaneleem.com;
    
        # etc...
    }

    By adding “ssl” to the listen directive to all my server blocks, everything started working again.

    Source: nginx.org