nginxでhttp/2でなくhttp1.1になってしまう

Linux

nginxでhttp/2通信できるように設定したのですが、
久しぶりにサイトを確認すると 「HTTP/2 and SPDY indicator」の
色がグレイに。。。
ind_off

nginxはMainlineでなくStableですが、現時点(2016/11/21)の
最新版。ALPNはサポート状態 ( openssl 1.0.2j )です。

$ nginx -V
nginx version: nginx/1.10.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.2j  26 Sep 2016
TLS SNI support enabled
facebookを確認すると青稲妻なんですよね。。。
ind_on
自分のサイトだけ。Chromeの開発ツールでプロトコル確認すると
http1.1で通信している状態。
な、なぜだ。。。
結果からいうと、自分のPCに入れているウィルスソフト
ESET Smart Security V9.0が原因でした。
証明書を確認したところ、「ESET SSL Filter CA」となっており、
調べたところ「SSL/TLSプロトコルフィルタリング」が怪しい。
ESETのV9.0だと上記フィルタリングがデフォルトでONに
なっているんですが、こちらを無効もしくは「既知の証明書のリスト」に
自サイトを追加するとよいでしょう。
不要な機能なので、私はOFF設定にしました。
これで稲妻が青くなりました。

[ESET設定]

<対応策1>SSL/TLSプロトコルフィルタリングを無効にする手順

  1. 基本画面の左メニュー[設定]→右下[詳細設定]をクリック。
  2. 左メニュー[Webとメール]→画面右の[SSL/TLS]を開き、[SSL/TLSプロトコルフィルタリングを有効にする]を無効([×]印)にして[OK]ボタンをクリックします。

<対応策2>該当のWebサイトへのアクセスを許可するルールを作成する手順
  1. 基本画面の左メニュー[設定]→右下[詳細設定]をクリック。
  2. 左メニュー[Webとメール]→画面右の[SSL/TLS]を開き、[SSL/TLSプロトコルフィルタリングモード]に[対話モード]を選択して[OK]ボタンをクリックします。
  3. アクセスを許可したいWebサイトにアクセスします。
  4. [暗号化ネットワークトラフィック 信頼できる証明書]ダイアログが表示されたら、テキスト内の[信頼できる証明書]をクリックし、証明書を表示します。証明書の内容(該当のドメイン(団体)であること)を確認し、[このアプリケーションのアクションを記録する]を選択して[無視]ボタンをクリックします。
    ※ 本画面は、複数回表示される場合もあります。その場合は同様の手順を繰り返してください。
  5. 手順3でアクセスしたWebサイトが表示されることを確認します。
  6. 再度、ESET製品の基本画面→[設定]→[詳細設定]をクリックして、設定ウインドウを開きます。
  7. [Webとメール]→[SSL/TLS]を開き、[SSL/TLSプロトコルフィルタリングモード]に[ルール付き自動モード]を選択して[OK]ボタンをクリックします。
下記の様な方はESETの設定を見直してみてください。
・nginxでhttp/2対応のサーバを立てている
・nginxの設定に間違いはないはず
・opensslもALPN対応のバージョンにしてある
・http/2でなくhttp1.1通信になってしまう
・サーバログを確認するとhttp/2プロトコルでの通信も確認できる
・確認しているPCにESETのV9.0が入っている
しかし、facebookはなぜフィルタリングされないんだ!

コメント

タイトルとURLをコピーしました