tomcat+nginx无法跳转https

2024-02-06  本文已影响0人  Master大屎

一、配置https
1、编译是需要加上ssl模块
2、开启https,并配置证书

    ssl_certificate      certs/xbell/fullchain.pem;
    ssl_certificate_key  certs/xbell/privkey.pem;
    listen 443 ssl;

二、针对request.getScheme()
若Java中使用 request.getScheme(),导致无法进行https->http转化,现需要对nginx和tomcat进行配置
1、nginx

        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header X-Forwarded-Proto $scheme;

最后一行为设置https访问
2、tomcat 修改配置
Engine模块增加如下节点:

<Valve className="org.apache.catalina.valves.RemoteIpValve"
           internalProxies="192.168.1.XXX"
           remoteIpHeader="x-forwarded-for"
           remoteIpProxiesHeader="x-forwarded-by"
           protocolHeader="x-forwarded-proto"
    />

其中需要将代理服务器的Ip加入到internalProxies中,否则会失败

三、注意点
1、nginx 请选用最新版本
2、nginx 编译时请带上ssl
3、https必须占用443端口

四、参考文档
http://blog.inford.net/doc/171
https://blog.csdn.net/radic_feng/article/details/6720059

上一篇下一篇

猜你喜欢

热点阅读