反向代理https后redirect出现问题

Mix Content:The page at 'https://www.abc.com...' was loaded over HTTPS, but requested an insecure form action 'http://www.abc.com...'.This request has been blocked;the content must be served over HTTPS.

如上提示,解决方法如下:

http://www.tuicool.com/articles/ARVVFjI

http://feitianbenyue.iteye.com/blog/2056357

http://www.w2bc.com/article/158816 (这个写的很细,但是对于这个问题重要的也就是那两个分别对反向代理服务器和tomcat的配置)

发生环境:

使用ssl数字证书,Apache(我的环境是2.4.23)或Nginx(我的环境是1.11.8)实现反向代理,后端使用tomcat(我的环境是7.0.73),nginx那个环境前面有硬件waf负责https卸载,证书配置在waf中,nginx纯粹当反向代理用(里面没有证书以及相关配置)

问题初步分析:

此时反向代理负责证书卸载,反向代理和tomat之间使用的是http协议,反向代理负责把tomcat数据取出来反馈给用户,这样tomcat接收到的是反向代理的http请求,redirect判断的实际上是正确的。

注意调整配置:

反向代理服务器和tomcat都要调整,只调整tomcat是不好用的。

nginx我调整的是在location / {}中间追加了:proxy_set_header X-Forwarded-Proto  https; 注意,指明https写$scheme没好用;

疑问:

很奇怪的是在nginx的环境上这个问题之前没发生,突然有那么一天就开始有问题了。Apache的上一开始就有。网上资料很少,一度折腾的我改代码。https这块真是充满了大坑!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值