Nginx配置-SSL&The plain HTTP request was sent to HTTPS port解决

该文介绍了如何在Nginx中配置SSL证书,包括从阿里云获取免费证书或使用自签证书,以及如何设置强制所有HTTP请求重定向到HTTPS,以确保安全访问。配置示例中详细展示了Nginx服务器段的SSL配置参数和处理497错误的方法。
摘要由CSDN通过智能技术生成


准备ssl证书

可以直接从阿里云控制台申请免费证书(每年20个,每个有一年有效期)
也可以使用自签证书,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://;
        }

    }
    

配置强制http访问也走https

配置后通过https正常访问,http访问报错如下
400 Bad Request
The plain HTTP request was sent to HTTPS port

这是由于产生了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://;
        }

    }

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值