2024年8月26日 星期一

使用騰訊雲 HTTPDNS 發送 HTTPS 請求出現SSL錯誤

 

騰訊雲行動解析 HTTPDNS 是透過將行動 App 及桌面應用的預設網域解析方式,取代為透過 HTTP 協定進行網域解析,以規避由電信商 Local DNS 服務異常所導致的用戶網路存取異常。

可參考這篇說明:騰訊雲的移動解析 HTTPDNS 服務如何運作?

 

SSL錯誤原因》

當客戶端使用 HTTPDNS 解析網域名稱時,請求 URL 中的host 會被替換成 HTTPDNS 解析出來的 IP,導致伺服器取得到的網域名稱為解析後的IP,而不是原本請求 URL 的 IP,導致無法找到符合的證書,只能傳回預設的憑證或不返回,所以會出現 SSL/TLS 錯誤。

 

《解決方法》

SNI場景

HTTP Header 取得真實域名,即使請求 URL 使用了解析後的 IP 位址,HTTP Header 仍然應該設定為原始域名,以確保 SSL 驗證通過。

 

SIN場景

SNIServer Name Indication)是為了解決一個伺服器使用多個網域和憑證的 SSL/TLS 擴充功能。運作原理:

    在連接到伺服器建立 SSL 連線之前先傳送要存取網站的網域名稱(Hostname)。

    伺服器根據這個網域傳回一個合適的憑證。

可以使用 HTTPDNS iOS SDK 提供的 MSDKDnsHttpMessageTools 攔截 NSURLSession 中的請求。 



 

參考資料:

行動解析 HTTPDNS 應用場景https://cloud.tencent.com/document/product/379/3520

行動解析 HTTPDNS IOS SDK HTTPS(非 SNI)場景https://cloud.tencent.com/document/product/379/77757

行動解析 HTTPDNS IOS SDK HTTPSSNI)場景https://cloud.tencent.com/document/product/379/77759



沒有留言:

張貼留言

搜尋此網誌