### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

While running `curl` to reach OpenSearch health endpoint, I receive a binary response instead of plain JSON.

```shell
$ curl -vvv my-domain.us-east-1.opensearch.localhost.localstack.cloud:443/_cluster/health                                                                                                                                                                                                                               
*   Trying 127.0.0.1:443...
* Connected to my-domain.us-east-1.opensearch.localhost.localstack.cloud (127.0.0.1) port 443 (#0)
> GET /_cluster/health HTTP/1.1
> Host: my-domain.us-east-1.opensearch.localhost.localstack.cloud:443
> User-Agent: curl/8.0.1
> Accept: */*
>
< HTTP/1.1 200
< content-type: application/json; charset=UTF-8
< content-encoding: gzip
< Connection: close
< date: Tue, 01 Aug 2023 08:46:35 GMT
< server: hypercorn-h11
< Transfer-Encoding: chunked
<
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
* Failure writing output to destination
* Failed reading the chunked-encoded stream
* Closing connection 0
```

### Expected Behavior

I expect to receive a JSON response without the need to use `--compressed` option in the `curl` command.

 curl -vvv --compressed my-domain.us-east-1.opensearch.localhost.localstack.cloud:443/_cluster/health
*   Trying 127.0.0.1:443...
* Connected to my-domain.us-east-1.opensearch.localhost.localstack.cloud (127.0.0.1) port 443 (#0)
> GET /_cluster/health HTTP/1.1
> Host: my-domain.us-east-1.opensearch.localhost.localstack.cloud:443
> User-Agent: curl/7.81.0
> Accept: */*
> Accept-Encoding: deflate, gzip, br, zstd
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200
< content-type: application/json; charset=UTF-8
< content-encoding: gzip
< Connection: close
< date: Tue, 01 Aug 2023 08:47:06 GMT
< server: hypercorn-h11
< Transfer-Encoding: chunked
<
* Closing connection 0
{"cluster_name":"opensearch","status":"green","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"discovered_master":true,"discovered_cluster_manager":true,"active_primary_shards":0,"active_shards":0,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":0,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":100.0}

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)
```yaml
version: '3.8'
services:
  localstack:
    container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
    image: localstack/localstack-pro:latest
    ports:
      - "127.0.0.1:53:53"
      - "127.0.0.1:53:53/udp"
      - "127.0.0.1:443:443"
      - "127.0.0.1:4510-4559:4510-4559"
      - "127.0.0.1:4566:4566"
    environment:
      - DEBUG=1
      - LS_LOG=trace
      - LOCALSTACK_API_KEY=${LOCALSTACK_API_KEY-} # only required for Pro
      - DOCKER_HOST=unix:///var/run/docker.sock
      - OPENSEARCH_ENDPOINT_STRATEGY=domain
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "./volume:/var/lib/localstack" # mount Docker volume
    healthcheck:
      disable: true
```

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

```shell
awslocal opensearch create-domain --domain-name my-domain
curl -vvv my-domain.us-east-1.opensearch.localhost.localstack.cloud:443/_cluster/health          
```

### Environment

```markdown
- OS: Windows 10
- LocalStack: 2.2.1.dev20230731233910
```


### Anything else?

Following the guide from the documentation page: [OpenSearch](https://docs.localstack.cloud/user-guide/aws/opensearch/)
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
    _, cert_file_name, key_file_name = create_ssl_cert()
    context.load_cert_chain(cert_file_name, key_file_name)
    return context
@pytest.fixture(scope="session")
def make_ssl_httpserver(custom_httpserver_with_ssl):
    
    
    server = HTTPServer(ssl_context=custom_httpserver_with_ssl)
    server.start()
    yield server
    server.clear()
    if server.is_running():
        server.stop()
@pytest.fixture
def ssl_httpserver(make_ssl_httpserver):
    server = make_ssl_httpserver
    yield server
    server.clear()
@pytest.mark.parametrize("client_class", [SimpleRequestsClient, SimpleStreamingRequestsClient])
@pytest.mark.parametrize("verify", [True, False])
@pytest.mark.parametrize("cert_env", [None, "REQUESTS_CA_BUNDLE", "CURL_CA_BUNDLE"])
def test_http_clients_respect_verify(client_class, verify, cert_env, ssl_httpserver, monkeypatch):