Skip to content

Filter connection-related headers when forwarding HTTP/1.1 responses over H/2 #193

@thomaswmanion

Description

@thomaswmanion

Summary and context

We are unable to make HTTPS requests in all browsers.

Here is the request we're doing:

curl -X POST
https://endpoint
-H 'Content-Type: application/json'
-d '{"username":"zdsfasdf","password":"dsfdafsd"}'

Here are the results we are seeing:

  1. Chrome does not work – Fails with:
    POST https://endpoint net::ERR_SPDY_PROTOCOL_ERROR
  2. Safari does not work – Fails with:
    [Error] Failed to load resource: The operation couldn’t be completed. Protocol error
  3. Curl 7.54.0 does not work – Fails with:
    curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)
  4. Curl 7.54.0 works when adding the flag --http 1.1
  5. Curl 7.64.1 works
  6. Postman works (after disabling SSL certificate verification)
  7. Firefox works

How to reproduce

Run the RIG on 2.1.1 with this configuration:

1: Here’s our port configuration:
- name: INBOUND_PORT
value: "3010"
- name: INBOUND_HTTPS_PORT
value: "3011"
- name: API_HTTP_PORT
value: "4010"
- name: API_HTTPS_PORT
value: "4011"
2: Here’s our https certs config:
- name: HTTPS_CERTFILE
value: "/gateway-certs/selfsigned.pem"
- name: HTTPS_KEYFILE
value: "/gateway-certs/selfsigned_key.pem"
3: The above certs are the same ones as in the RIG repo

Make a POST request to this server in any of the failing clients above.

Describe how your clients are set up, whether they connect via SSE or WS, etc.

This is happening in the REST request to authorize, prior to SSE or WS connection.

A clear and concise description of what you expected to happen.

Versions (please complete the following information):**

  • Host OS: FROM elixir:1.6-alpine as build
  • Frontend Chrome, Safari, Firefox
  • RIG 2.1.1

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions