Nginx 構成 - SSL&プレーン HTTP リクエストが HTTPS ポート ソリューションに送信されました


SSL証明書を準備する

Alibaba Cloud コンソールから無料の証明書を直接申請することもできます (年間 20 個、それぞれ 1 年間の有効期間があります)、
または自己署名証明書を使用することもできます。Nginxは、openssl 自己署名証明書を介して HTTPS にアクセスし、安全でないアラームを報告する問題を解決します

構成例

    upstream tomcatserver {
    
    
         server 127.0.0.1:8801 max_fails=3 fail_timeout=3s;
         server 127.0.0.1:8802 max_fails=3 fail_timeout=3s;         
    }
    
    server {
    
    
        listen       8888 ssl;
        server_name  localhost;
        
        ssl_certificate      /usr/local/nginx/ssl/nginx.pem;
        ssl_certificate_key  /usr/local/nginx/ssl/nginx.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
    
    
            proxy_pass http://tomcatserver/;
            client_max_body_size  500m;
            proxy_connect_timeout 300;
            proxy_http_version 1.1;
            proxy_send_timeout 300;
            proxy_read_timeout 300;
            proxy_set_header    Host             $http_host;
            proxy_set_header    X-Real-IP        $remote_addr;
            proxy_set_header    X-Real-Port      $remote_port;
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_redirect http:// https://;
        }

    }
    

https にも移行するように必須の http アクセスを構成する

設定後、https を介した通常のアクセス、http アクセス エラーは次のとおりです:
400 Bad Request
プレーン HTTP リクエストが HTTPS ポートに送信されました。

これは 497 エラーが原因です。次のように構成を追加して http アクセスを https に強制し、
error_page 497 301 https://$http_host$request_uri;
497、301 およびその他のエラー コードを https にリダイレクトします。

    upstream tomcatserver {
    
    
         server 127.0.0.1:8801 max_fails=3 fail_timeout=3s;
         server 127.0.0.1:8802 max_fails=3 fail_timeout=3s;         
    }
    
    server {
    
    
        listen       8888 ssl;
        server_name  localhost;
        
        ssl_certificate      /usr/local/nginx/ssl/nginx.pem;
        ssl_certificate_key  /usr/local/nginx/ssl/nginx.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        
        error_page 497 301 https://$http_host$request_uri;

        location / {
    
    
            proxy_pass http://tomcatserver/;
            client_max_body_size  500m;
            proxy_connect_timeout 300;
            proxy_http_version 1.1;
            proxy_send_timeout 300;
            proxy_read_timeout 300;
            proxy_set_header    Host             $http_host;
            proxy_set_header    X-Real-IP        $remote_addr;
            proxy_set_header    X-Real-Port      $remote_port;
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_redirect http:// https://;
        }

    }

おすすめ

転載: blog.csdn.net/jxlhljh/article/details/130979822