問題信息
errMsg: "request:fail -2:net::ERR_FAILED" errno: 600001
Ps1:這個錯誤是在微信小程序項目遷移的時候,調(diào)用 HTTPS API 時一不小心配置錯了很容易產(chǎn)生的問題,DDDD~
Ps2:電腦端工具能訪問 API 成功,估計是勾選了不效驗合法域名的原因,而手機端就顯示報錯
分析原因
猜想1:一開始還以為是 HTTPS 域名沒備案導(dǎo)致的,后來備案成功也不行
猜想2:小程序開發(fā)設(shè)置里白名單必須填寫服務(wù)器 IP?并不是
猜想3:二級域名需要重新備案?頂級備案后即可
猜想4:HTTPS Chrome 瀏覽器訪問域名也是安全鎖了...咋還不行...
翻了一些資料發(fā)現(xiàn)是有一個叫“證書鏈”不完整導(dǎo)致的,那么這個“證書鏈”完整去哪里搞?(見微信小程序官方文檔 - 下面標紅重點答案)
HTTPS 證書(采自微信小程序官網(wǎng)文檔)
小程序必須使用 HTTPS/WSS 發(fā)起網(wǎng)絡(luò)請求。請求時系統(tǒng)會對服務(wù)器域名使用的 HTTPS 證書進行校驗,如果校驗失敗,則請求不能成功發(fā)起。由于系統(tǒng)限制,不同平臺對于證書要求的嚴格程度不同。為了保證小程序的兼容性,建議開發(fā)者按照最高標準進行證書配置,并使用相關(guān)工具檢查現(xiàn)有證書是否符合要求。
對證書要求如下:
HTTPS 證書必須有效;
證書必須被系統(tǒng)信任,即根證書被已系統(tǒng)內(nèi)置
部署 SSL 證書的網(wǎng)站域名必須與證書頒發(fā)的域名一致
證書必須在有效期內(nèi)
證書的信任鏈必需完整(需要服務(wù)器配置)
iOS 不支持自簽名證書;
iOS 下證書必須滿足蘋果 App Transport Security (ATS) 的要求;
TLS 必須支持 1.2 及以上版本。部分舊 Android 機型還未支持 TLS 1.2,請確保 HTTPS 服務(wù)器的 TLS 版本支持 1.2 及以下版本;
部分 CA 可能不被操作系統(tǒng)信任,請開發(fā)者在選擇證書時注意小程序和各系統(tǒng)的相關(guān)通告。
Chrome 56/57 內(nèi)核對 WoSign、StartCom 證書限制周知
證書有效性可以使用 openssl s_client -connect example.com:443 命令驗證,也可以使用其他在線工具。
除了網(wǎng)絡(luò)請求 API 外,小程序中其他 HTTPS 請求如果出現(xiàn)異常,也請按上述流程進行檢查。如 https 的圖片無法加載、音視頻無法播放等。
在線工具地址: https://myssl.com/ssl.html


Tip:輸入域名,點擊檢測,可以發(fā)現(xiàn)的確顯示“證書鏈不完整”!
另:在線工具地址: https://www.digicert.com/help(這個用的也比較多)

Tip:一樣的套路,輸入域名,點擊按鈕檢測即可,下面會出分析報告噢~只是這個是英文版文章來源:http://www.zghlxwxcb.cn/news/detail-673900.html
解決方案
獲取完整證書鏈地址: https://myssl.com/chain_download.html


Tip:輸入域名,點擊獲取證書鏈,下面會彈出完整的證書鏈,復(fù)制保存也好,按照上面說的下載下來也好,保存為 .crt 文件,最后就只要重新把這個 .crt 生成并發(fā)布證書到服務(wù)器上即可,因為我這邊是 K8s,所以在下一篇會講解到如何把普通的 HTTP 升級到 HTTPS 在 K8S 上的應(yīng)用部署方案?!文章來源地址http://www.zghlxwxcb.cn/news/detail-673900.html
參考文檔

到了這里,關(guān)于微信小程序 - HTTPS 證書鏈解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!