%20%E3%82%92%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
背景
RFC 9460 参照HTTPS への接続をアップグレードするために使用できる DNS リソース レコード (RR)を定義しSVCB
、サポートされるアプリケーション層プロトコル (ALPN) も指定します。HTTPS
2021年9月7日にFirefox 92がリリースされ、HTTPS RRのサポートを追加しました:
Firefox は、使用可能な HTTPS RR が利用可能になると、HTTP リクエストを HTTPS に自動的にアップグレードします。また、HTTPS RR で提供される情報を使用して、HTTPS 接続を確立するプロセスを最適化します。これは概念的には Alt-Svc ヘッダーを使用するのと似ています。(Firefox バグ 1721132)。
テスト
これを でテストしてみますwww.google.com
。
まず、RR があるかどうかを確認してみましたHTTPS
。
$ dig 8.8.8.8 www.google.com HTTPS
...
;; ANSWER SECTION:
www.google.com. 3358 IN HTTPS 1 . alpn="h2,h3"
ここで、RR が存在することがわかり、パラメータの値HTTPS
によって示されるサポートされているプロトコルが HTTP/3 であることがわかります。h3
alpn
次に、オペレーティング システムの DNS キャッシュをクリアしてみました。たとえば、Windows では、 を実行しましたipconfig /flushdns
。また、テストに使用したシステムの 1 つで、Firefox と Chrome (またはその他のプロセス) が google.com に頻繁にアクセスしようとしているように見えるため、アドレス バーで Enter キーを押す直前にこれを実行しました。
Firefox v120 を開いて、次のサイトにアクセスしようとしました: www.google.com
。
問題
Firefox v120 は、v92 リリースでアップグレードと最適化に HTTPS RR を使用すると述べられていますが、それを要求していないようです。
Wireshark ではA
、 とAAAA
RR のみがクエリされていることが示されています。
また、次のヘッダーにより、Firefox は最初に HTTP/2 接続を開いてから HTTP/3 に切り替えていることがわかりますAlt-Svc
。
実際のところ、複数の Web サイトのどのデスクトップ アプリケーション (Chrome、IceCat、Edge など) も RR を要求していないようです。WireSharkでまたは をHTTPS
フィルターしてもヒットしないからです。 を介して明示的に検索を実行した場合にのみヒットします。dns.qry.type == "HTTPS"
dns.qry.type == 65
dig
質問
RR が照会されないように見えるのはなぜですかHTTPS
?
問題を理解するために、根本的な原因を見つけるのに役立つかもしれない次のような誘導的な質問もしています。
- これはデフォルトで無効になっている機能ですか?
- これはホストの設定(RR の設定以外
HTTPS
)に依存しますか? 私が読んだリソースでは、追加の手順が必要であるとは示されていません。 - RRを要求するのは誰の責任ですか
HTTPS
? ブラウザですか、それともオペレーティング システムですか? これまでのところ、Guix System 1.4、Windows 10、Windows 11 の更新バージョンと、上記のすべてのブラウザで試しました。 - これはハードウェアに依存しますか?
答え1
これは Windows 関連の問題だと思います。nslookup は HTTPS ルックアップをサポートしておらず、win32 で内部的に使用されているからです。ブラウザは win32 関数に依存していると思います。iPhone の Safari Chrome または Firefox でテストすると、完璧に動作します。