1. 程式人生 > >反向代理https後redirect出現問題

反向代理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.

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

發生環境:

使用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這塊真是充滿了大坑!