ブラウザでHTTP/1をhttps内のプロトコルとして使用するようにするには、HTTP/2の使用をブロックするのに問題があります。 TLS MITMの問題は解決されていません.NFQUEUEのようなusermodeパケットフィルタリングは、処理オーバーヘッドに応じて最大で考慮されることがあります。ファイアウォールレベルでHTTP/2をブロックする
ALPN RFCを読むと、ALPNが含まれているClientHelloが表示されているときにアラート応答を提供するか接続を切断するかは不明です。http/2はALPNなしでブラウザを再試行します。
私が正しく理解していれば、ClientHelloを変更するとそのパケットのMACが無効になるため、サーバがServerHelloで応答するときにチェックサムエラーが発生するため、ClientHelloの変更は問題になりません。
ブロックハンドシェイクの動作はw.r.tです。 ALPNはTLSバージョンフォールバックの処理と同じです(TLS_FALLBACK_SCSV?
EDIT:opensslのt1_lib.cによると、サーバがALPNを知らない場合、それは無視されます。したがって、サーバがALPNを含むClientHelloに対してAlertを返す場合は、おそらくTLS1.2をサポートしていないためです。クライアントに「警告」以外の「ALPNなしで再試行してください」というクライアントへの通知方法はありませんTLS1.1を試してみてください。
どのような種類のファイアウォールですか?これが単純なパケットフィルタであれば、HTTP/2のブロックには成功しませんが、とにかくコンテンツを検査しないので、どちらもブロックしないように見えません。これがSSLトラフィックを検査できるファイアウォールの場合、man-in-the-middleとして動作するため、ALPN拡張を自動的に削除してHTTP/1.xへのダウングレードを引き起こす可能性があります。それ以外のところでは、私はこの質問をここでは話題にし、security.stackexchange.comやserverfault.comでの話題についても検討しています。 –
なぜこれをやりたいですか?より良い選択肢があるかもしれないので。また、インバウンドまたはアウトバウンド接続についても話していますか? –
TLS MITMを除外するための質問を編集しました。これはアウトバウンドファイアウォール向けです。 – patraulea