2016-04-26 52 views
6

我的應用程序在HTTPS下運行,並使用來自某個已知權威機構的有效證書。不幸的是,我正在使用不支持HTTPS的第三方API。在HTTPS下調用不安全的端點從一個網站運行 - nginx

結果是已知郵件混合內容:mydomain.com請求 不安全的XMLHttpRequest端點。

是否有可能一個例外添加到Web服務器允許不安全調用此API!我正在使用Nginx BTW。

如果不是什麼可以解決這個問題的其他可能性。

我有一個解決方案,但我不喜歡它,因爲它會是一個性能缺點:

實現充當代理的API,通過HTTPS接收來自應用程序的請求,並將請求第三方API會拋出HTTP。

+0

難道我的回答解決這個問題?如果你需要配置幫助,我可以。 – khrm

+0

@khrm明天會試一試並更新你 –

回答

3

我也有這個問題。如果您使用的是https並且不需要警告/錯誤,則頁面上的所有內容都應該發送並請求https。如果你使用nginx,你不需要實現一個代理API。無論您實施什麼方法,都會在您正確推測的情況下影響性能。只需在nginx中使用代理傳遞。 在我們的配置中,我們有:

location /thirdparty/ { 
     proxy pass http://thirdpartyserver/; 
} 

請注意,在代理通最後的斜線,我把所有的第三方API,它是HTTP的https://myserver/thirdparty/requesturl。在提出請求時,尾部斜線刪除第三方。所以就變成,http://thirdpartyserver/request

官方參考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

0

爲了允許混合內容,個人用戶必須在瀏覽器中允許它。允許來自一個源的HTTP內容足以危及HTTPS的安全性,因此瀏覽器默認禁止混合內容。我看到的解決方案是:

  1. 擺脫HTTPS(我不推薦)
  2. 做你的建議和代理請求通過的(這仍然不是很大的安全明智)
  3. 擺脫在HTTP內容

的谷歌已經爲下步開發人員1的一些建議(但他們基本上都是上面呼應):https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content#step-1

+0

感謝您的回覆,我不會去掉HTTPS。通過這篇文章,但沒有找到要找的東西,發佈此作爲有人可能會提供另一個想法。 –

+0

是的那篇文章基本上概述了我上面所說的。從可用性角度來看,這是不幸的,但從安全角度來看,混合內容被阻止是最重要的 – winhowes

相關問題