Ruby 4.1 リファレンスマニュアル

instance method OpenSSL::SSL::SSLContext#alpn_protocols

alpn_protocols -> [String] | nilRuby 2.3.0 から[permalink][rdoc][edit]
alpn_protocols=(protocols)

Application-Layer Protocol Negotiation(ALPN)で通知するプロトコル名の一覧を取得・設定します。

alpn_protocols= で設定した文字列の配列がハンドシェイク時に ALPN 拡張として送信されます。クライアント側で設定するものであり、サーバ側で設定しても効果はありません。設定しなかった場合、ハンドシェイクに ALPN 拡張は含まれません。

サーバ側でクライアントが提示したプロトコルから選択するには OpenSSL::SSL::SSLContext#alpn_select_cb= を使います。

例
require 'openssl'
ctx = OpenSSL::SSL::SSLContext.new
ctx.alpn_protocols = ["http/1.1", "spdy/2", "h2"]
[PARAM] protocols:
通知するプロトコル名の文字列の配列

[SEE_ALSO] OpenSSL::SSL::SSLContext#alpn_select_cb=, OpenSSL::SSL::SSLSocket#alpn_protocol