反向代理https後redirect出現問題
阿新 • • 發佈:2019-01-24
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.
如上提示,解決方法如下:
發生環境:
使用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這塊真是充滿了大坑!