Nginx 配置ssl 3种方式

Nginx 配置ssl 证书,增加外层网络传输安全协议,而局域网内应用服务器配置不变;由https 协议请求访问到http协议应用服务器。

由于,两种传输协议的不同,导致从应用服务器获得的scheme是本地的http协议。而Web服务器提供是https协议。因此从页面获得图片、样式使用scheme方式获取不到资源。导致页面加载不到图片及样式。

 

解决方式,是更改页面获取图片及样式的方式。放弃用绝对路径,改用相对路径。这样jsp会一个有问题。当用redirect做请求转发的时候,javaweb会采用标准重新获取服务器所在环境,得到是http进行跳转而不是采用https协议。

 

解决方式一,是重写tomcat下catalina.jar包,org.apache.connector.Request. getScheme()方法,以及org.apache.connector.Request. getServerPort()方法。使其返回https协议类型及443端口。

 

解决方式二,是在nginx配置location中添加

       proxy_set_header  Host  $host;

       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;

       同时在tomcat配置文件server.xml中Engine 模块下添加

              <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>

 

       解决方式三,是在nginx配置中添加server

           server {

             listen       80;

             server_name  http域名;

             rewrite ^/(.*) https域名/$1 permanent;

         }

       使其,在发起http请求时,直接跳转到https中重新请求地址。(会发起两次请求)

 

       另,解决IE跨域下不存储cookie的问题。

首先,检查域名不能包含特殊字符如:?/\;:@#$%^~_=+, 。<>只能是字母、数据及横杠才可以。

其次,在请求返回页面时,添加响应请求头:

response.addHeader("P3P", "CP=CAO PSA OUR");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值