微信小程序 - HTTPS 证书链解决方案
問題信息
errMsg: "request:fail -2:net::ERR_FAILED" errno: 600001Ps1:這個錯誤是在微信小程序項目遷移的時候,調用 HTTPS API 時一不小心配置錯了很容易產生的問題,DDDD~
Ps2:電腦端工具能訪問 API 成功,估計是勾選了不效驗合法域名的原因,而手機端就顯示報錯
分析原因
猜想1:一開始還以為是 HTTPS 域名沒備案導致的,后來備案成功也不行
猜想2:小程序開發設置里白名單必須填寫服務器 IP?并不是
猜想3:二級域名需要重新備案?頂級備案后即可
猜想4:HTTPS Chrome 瀏覽器訪問域名也是安全鎖了...咋還不行...
翻了一些資料發現是有一個叫“證書鏈”不完整導致的,那么這個“證書鏈”完整去哪里搞?(見微信小程序官方文檔 - 下面標紅重點答案)
小程序必須使用 HTTPS/WSS 發起網絡請求。請求時系統會對服務器域名使用的 HTTPS 證書進行校驗,如果校驗失敗,則請求不能成功發起。由于系統限制,不同平臺對于證書要求的嚴格程度不同。為了保證小程序的兼容性,建議開發者按照最高標準進行證書配置,并使用相關工具檢查現有證書是否符合要求。
對證書要求如下:
HTTPS 證書必須有效;
證書必須被系統信任,即根證書被已系統內置
部署 SSL 證書的網站域名必須與證書頒發的域名一致
證書必須在有效期內
證書的信任鏈必需完整(需要服務器配置)
iOS 不支持自簽名證書;
iOS 下證書必須滿足蘋果 App Transport Security (ATS) 的要求;
TLS 必須支持 1.2 及以上版本。部分舊 Android 機型還未支持 TLS 1.2,請確保 HTTPS 服務器的 TLS 版本支持 1.2 及以下版本;
部分 CA 可能不被操作系統信任,請開發者在選擇證書時注意小程序和各系統的相關通告。
Chrome 56/57 內核對 WoSign、StartCom 證書限制周知
除了網絡請求 API 外,小程序中其他 HTTPS 請求如果出現異常,也請按上述流程進行檢查。如 https 的圖片無法加載、音視頻無法播放等。
在線工具地址: https://myssl.com/ssl.htmlTip:輸入域名,點擊檢測,可以發現的確顯示“證書鏈不完整”!
另:在線工具地址: https://www.digicert.com/help(這個用的也比較多)Tip:一樣的套路,輸入域名,點擊按鈕檢測即可,下面會出分析報告噢~只是這個是英文版
解決方案
獲取完整證書鏈地址: https://myssl.com/chain_download.htmlTip:輸入域名,點擊獲取證書鏈,下面會彈出完整的證書鏈,復制保存也好,按照上面說的下載下來也好,保存為 .crt 文件,最后就只要重新把這個 .crt 生成并發布證書到服務器上即可,因為我這邊是 K8s,所以在下一篇會講解到如何把普通的 HTTP 升級到 HTTPS 在 K8S 上的應用部署方案?!
參考文檔
總結
以上是生活随笔為你收集整理的微信小程序 - HTTPS 证书链解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SMC_TRAFO_5Axes (FB)
- 下一篇: 凡科的ns服务器如何修改,ns怎么把服务