baicai

白菜

一个勤奋的代码搬运工!

解決 Firefox 訪問weibo搜索或熱搜提示 建立安全連接失敗

應用版本:firefox 開發者版 v101
問題描述:微博主頁可以正常訪問,但點擊搜索或熱搜鏈接,都提示:

    建立安全連接失敗

    連接到 s.weibo.com 時發生錯誤。

        由於不能驗證所收到的數據是否可信,無法顯示您想要查看的頁面。
        建議向此網站的管理員反饋這個問題。

    詳細了解…

通過 curl -v “網址” 反復重試對比發現在訪問微博熱搜的時候有一個加密協商被 “微博賬戶認證網關服務器” 拒絕了。

具體測試指令:
通過

    curl -v "https://s.weibo.com/weibo?q=%23%E7%A5%9D%E8%9E%8D%E5%8F%B7%E5%87%86%E5%A4%87%E5%9C%A8%E7%81%AB%E6%98%9F%E8%B6%8A%E5%86%AC%23&topic_ad="

得到 302 跳轉請求鏈接
繼續

    curl -v "https://passport.weibo.com/visitor/visitor?entry=miniblog&a=enter&url=https%3A%2F%2Fs.weibo.com%2Fweibo%3Fq%3D%2523%25E7%25A5%259D%25E8%259E%258D%25E5%258F%25B7%25E5%2587%2586%25E5%25A4%2587%25E5%259C%25A8%25E7%2581%25AB%25E6%2598%259F%25E8%25B6%258A%25E5%2586%25AC%2523%26topic_ad%3D&domain=.weibo.com&sudaref=&ua=php-sso_sdk_client-0.6.29&_rand=1651842429.1375"

返回

    ……
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / AES256-GCM-SHA384
    * ALPN, server did not agree to a protocol
    * Server certificate:
    *  subject: C=CN; ST=Beijing; O=Sina.com Technology(China)Co.,ltd; CN=sina.com
    ……

注意這段提示:

    ALPN, server did not agree to a protocol

ALPN#

ALPN (Application-Layer Protocol Negotiation): 應用層協議協商是 TLS 的一個擴展,故而應用層協議在協商加密協議的過程中,避免了額外的往返通訊開銷。
ALPN 支持任意應用層協議的協商,目前應用最多是 HTTP2 的協商。當前主流瀏覽器,都只支持基於 HTTPS 部署的 HTTP/2,因為瀏覽器是基於 ALPN 協議來判斷服務器是否支持 HTTP2 協議。

瀏覽器協商原理#

可以通過 WireShark 抓包分析 ALPN 協商協議交互的過程

*瀏覽器在進行SSL連接,第一次發送Client Hello包時,在擴展字段裡攜帶瀏覽器支持的版本。

*服務器在返回Server Hello包時,如果服務器支持http 2,則會返回h2,如果不支持,則從客戶端支持的協議列表中選取一個它支持的協議,一般為http/1.1。

瀏覽器和服務端都支持 ALPN 協商,是用上 HTTP/2 的大前提。

大部分 Web Server 都依賴 OpenSSL 库提供 https服務,是否支持 ALPN 完全取決於使用的 OpenSSL 版本,OpenSSL 1.0.2 版本才開始支持 ALPN。

關閉 Firefox ALPN 功能#

地址欄輸入

    about:config

確認風險提示

輸入“ALPN”

    security.ssl.enable_alpn

的值切換為 false

參考:
ALPN

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。