株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

AWSのALB→EC2でApacheが立っていて、それにcurlできない

curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)

http2通信を行わせないようにする

<IfModule mod_http2.c>
    #Protocols h2 h2c http/1.1
    Protocols http/1.1
</IfModule>

設定後

yuta@DESKTOP-V36210S:/mnt/c$ curl -i https://dev2-terraform.test.jp/
HTTP/2 200
date: Mon, 08 Jun 2020 23:28:10 GMTcontent-type: text/html; charset=UTF-8
content-length: 2660

どうやらユーザーとALB間はhttp2通信で行われているが、ALBとEC2(Apache)の間はhttp1.1で行われているからみたい。
mod_http2を有効にしていると、「Upgrade」をレスポンスヘッダに加えてしまう。
だけど、http2通信のRFCでは許可されていないことのようで、はじかれてしまったみたい。
これはブラウザというかUserAgentの仕様によってきまるもので、今回はUbuntu(wsl)のcurlでできなかった。
Chromeからとかは見れたし、Invoke-WebRequestでもいけた。

参考サイト
https://qiita.com/t-kigi/items/0723cd7c26472746d389

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)