【解決問題記錄】https網站中請求http資源接口報錯與netERRSSLPROTOCOLERROR錯誤的解決


在線上的CRM網站中,對接OBS做了一個專門的公共服務,公共服務使用的http協議,在頁面中調用接口時出現錯誤:
The page at 'xxx' was loaded over HTTPS, but requested an insecure resource 'xxx'.

 

錯誤原因:
HTTPS頁面里動態的引入HTTP資源,比如引入一個js文件,會被直接block,在HTTPS頁面里通過AJAX的方式請求HTTP資源,也會被直接block掉的。

 

解決辦法:
頁面的head中加入:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
意思是自動將http的不安全請求升級為https
也可以在配置的接口地址中, 把前面的HTTPS或者HTTP去掉, 就像這樣://xxx.com.cn/xxx/xxx/UploadFileToOBS
效果類似。

但這樣做了以后,像js資源等不會再出現問題,但請求接口依然會報錯:
瀏覽器中會輸出net::ERR_SSL_PROTOCOL_ERROR錯誤net::ERR_CERT_COMMON_NAME_INVALID

 

在網上查看資料后,解決此問題的辦法就是,將接口使用https協議,並使用正確的SSL證書,可以通過nginx配置,將接口服務添加https綁定443端口,並選擇證書后,問題解決!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM