アプリのバージョン:Firefox Developer Edition v101
問題の説明:Weibo のホームページには正常にアクセスできますが、検索またはトレンドのリンクをクリックすると、次のようなエラーメッセージが表示されます:
セキュアな接続の確立に失敗しました
s.weibo.com に接続する際にエラーが発生しました。
受信したデータの信頼性を検証できないため、表示することができません。
この問題については、このウェブサイトの管理者にフィードバックすることをお勧めします。
詳細についてはこちらをご覧ください…
curl -v "URL" を使用して繰り返しテストを行った結果、Weibo のトレンドにアクセスする際に、"Weibo アカウント認証ゲートウェイサーバー" によって暗号化プロトコルの交渉が拒否されたことがわかりました。
具体的なテストコマンド:
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 リダイレクトリクエスト URL を取得し、次に
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 は任意のアプリケーション層プロトコルのネゴシエーションをサポートしており、現在最も一般的なのは HTTP/2 のネゴシエーションです。主要なブラウザはすべて、HTTPS でデプロイされた HTTP/2 をサポートしています。ブラウザは ALPN プロトコルを使用して、サーバーが HTTP/2 プロトコルをサポートしているかどうかを判断します。
ブラウザのネゴシエーションの原理#
WireShark を使用して ALPN プロトコルの相互作用をキャプチャして分析できます。
*ブラウザはSSL接続を行う際、最初のClient Helloパケットを送信する際に、サポートされているバージョンを拡張フィールドに含めます。
*サーバーはServer Helloパケットを返す際、サーバーがhttp 2をサポートしている場合はh2を返し、サポートしていない場合はクライアントがサポートしているプロトコルリストから1つを選択します。通常はhttp/1.1です。
ブラウザとサーバーの両方が ALPN ネゴシエーションをサポートしている場合、HTTP/2 を使用するための前提条件が整っています。
ほとんどの Web サーバーは、https サービスを提供するために OpenSSL ライブラリに依存しており、ALPN をサポートするかどうかは使用している OpenSSL のバージョンに完全に依存します。ALPN は OpenSSL 1.0.2 からサポートされています。
Firefox の ALPN 機能の無効化#
アドレスバーに入力してください:
about:config
リスクの警告を確認してください。
"ALPN"と入力します。
security.ssl.enable_alpn
の値を false に切り替えます。
参考:
ALPN