セキュリティ・認証 / TLS/PKI
ALPNとは
Application-Layer Protocol Negotiation。TLS handshake中にHTTP/2など、暗号化後に利用するアプリケーションプロトコルを合意する拡張です。
用語集内のカードを見るセキュリティ・認証 / TLS/PKI
Application-Layer Protocol Negotiation。TLS handshake中にHTTP/2など、暗号化後に利用するアプリケーションプロトコルを合意する拡張です。
用語集内のカードを見るALPNを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。
Packet Story Lab
正常系と障害系の通信フローを見比べ、用語がどの観測点に現れるかを確認できます。
ALPNはApplication-Layer Protocol Negotiationの略で、TLS handshake中に暗号化後の通信で使うアプリケーションプロトコルを合意する拡張です。HTTPSではClientがh2やhttp/1.1などの候補を提示し、Serverが対応する1つを選びます。
ALPNはTLS versionや暗号スイートの選択とは別です。TLS 1.3が成立してもALPNが期待と違えば、HTTP/2を使えずHTTP/1.1へfallbackする、またはprotocol不一致で接続できない場合があります。
ClientHelloにはClientが利用できるALPN identifierが優先順で入ります。Serverは自分の対応範囲と照合し、ServerHello側で選択結果を返します。packet captureやopenssl、browserのNetwork情報では提示値と選択値を分けて確認します。
利用者とCDN、CDNとLoad Balancer、Load BalancerとBackendでは別々のTLS接続やHTTP versionが使われることがあります。公開側でh2が選ばれても、Backend側はHTTP/1.1という構成は正常です。どのhopのALPNを見ているかを明記します。
ALPN不一致を疑うときは、先にDNS、TCP、TLS証明書検証がどこまで成功したかを確認します。証明書期限切れやSAN不一致はALPNとは別の停止理由です。TLSが成立しHTTP応答だけ異常なら、選択protocolとBackend対応を確認します。
HTTP/2有効化やTLS policy変更後は、ALPN選択、HTTP version、代表URL、API、streaming、長時間接続を確認します。単にh2と表示されたことだけで性能改善や互換性を断定しません。
証跡にはFQDN、接続IP、SNI、TLS version、Cipher、Client提示ALPN、Server選択ALPN、終端点を残します。
同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。