首先引入微信小程序官方關(guān)于HTTPS網(wǎng)絡(luò)請求問題的相關(guān)說明
小程序必須使用 HTTPS/WSS 發(fā)起網(wǎng)絡(luò)請求巢掺。請求時系統(tǒng)會對服務(wù)器域名使用的 HTTPS 證書進(jìn)行校驗(yàn),如果校驗(yàn)失敗,則請求不能成功發(fā)起呼巴。由于系統(tǒng)限制影钉,不同平臺對于證書要求的嚴(yán)格程度不同。為了保證小程序的兼容性录粱,建議開發(fā)者按照最高標(biāo)準(zhǔn)進(jìn)行證書配置腻格,并使用相關(guān)工具檢查現(xiàn)有證書是否符合要求。
如果蘋果機(jī)型和本地微信開發(fā)工具請求都相對正常啥繁,唯獨(dú)安卓部分機(jī)型頻繁出現(xiàn)請求超時問題菜职,那么可能就是服務(wù)器域名證書的信任鏈不完整或者缺失中間證書引發(fā)的,請對照下述流程檢查或使用SSL證書在線檢測工具旗闽。
微信小程序?qū)ψC書要求如下:
- HTTPS 證書必須有效酬核;
○ 證書必須被系統(tǒng)信任,即根證書被已系統(tǒng)內(nèi)置
○ 部署 SSL 證書的網(wǎng)站域名必須與證書頒發(fā)的域名一致
○ 證書必須在有效期內(nèi)
○ 證書的信任鏈必需完整(需要服務(wù)器配置) - iOS 不支持自簽名證書适室;
- iOS 下證書必須滿足蘋果 [App Transport Security (ATS)]的要求嫡意;
- TLS 必須支持 1.2 及以上版本。部分舊 Android 機(jī)型還未支持 TLS 1.2捣辆,請確保 HTTPS 服務(wù)器的 TLS 版本支持 1.2 及以下版本蔬螟;
- 部分 CA 可能不被操作系統(tǒng)信任,請開發(fā)者在選擇證書時注意小程序和各系統(tǒng)的相關(guān)通告汽畴。
為什么只有安卓系統(tǒng)會出現(xiàn)這個問題促煮?
原因:在部分安卓系統(tǒng)下證書不可信從而導(dǎo)致無法請求到數(shù)據(jù)。在證書文件的詳細(xì)信息-授權(quán)信息訪問一欄的 Alternative Name 中指定了中間證書的獲取 URL 地址整袁。IOS菠齿、MAC、Windows坐昙、都支持這種方式獲取中間證書绳匀,唯獨(dú)部分 Android 系統(tǒng)不支持,所以就無法建立可信連接炸客。所以在切換小程序網(wǎng)絡(luò)請求域名時請注意檢查 SSL 證書是否配置正確疾棵。