curl client verbose trace * STATE: INIT => CONNECT handle 0x80068520; line 1407 (connection #-5000) * Added connection 0. The cache now contains 1 members * Trying 192.168.30.18... * TCP_NODELAY set * STATE: CONNECT => WAITCONNECT handle 0x80068520; line 1460 (connection #0) * Connected to mydomain.com (192.168.30.18) port 443 (#0) * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x80068520; line 1567 (connection #0) * Marked for [keep alive]: HTTP default * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.2 (OUT), TLS header, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * STATE: SENDPROTOCONNECT => PROTOCONNECT handle 0x80068520; line 1581 (connection #0) * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: C=FR; CN=mydomain.com * start date: Jun 14 08:50:22 2016 GMT * expire date: Jun 14 08:50:22 2017 GMT * subjectAltName: host "mydomain.com" matched cert's "mydomain.com" * issuer: C=IL; O=StartCom Ltd.; OU=StartCom Certification Authority; CN=StartCom Class 1 DV Server CA * SSL certificate verify ok. * STATE: PROTOCONNECT => DO handle 0x80068520; line 1602 (connection #0) * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * nghttp2_session_mem_recv() returns 0 * http2_send len=79 * h2 header: :method:GET * h2 header: :path:/ * h2 header: :scheme:https * h2 header: :authority:mydomain.com * h2 header: User-Agent:curl/7.51.0 * h2 header: Accept:*/* * Using Stream ID: 1 (easy handle 0x80068520) * before_frame_send() was called * on_frame_send() was called, length = 31 > GET / HTTP/1.1 > Host: mydomain.com > User-Agent: curl/7.51.0 > Accept: */* > * STATE: DO => DO_DONE handle 0x80068520; line 1664 (connection #0) * multi changed, check CONNECT_PEND queue! * STATE: DO_DONE => WAITPERFORM handle 0x80068520; line 1791 (connection #0) * STATE: WAITPERFORM => PERFORM handle 0x80068520; line 1801 (connection #0) * http2_recv: easy 0x80068520 (stream 1) * nread=37 * Got SETTINGS * MAX_CONCURRENT_STREAMS == 100 * ENABLE_PUSH == TRUE * Connection state changed (MAX_CONCURRENT_STREAMS updated)! * Got SETTINGS * MAX_CONCURRENT_STREAMS == 100 * ENABLE_PUSH == TRUE * nghttp2_session_mem_recv() returns 37 * All data in connection buffer processed * http2_recv returns AGAIN for stream 1 * multi changed, check CONNECT_PEND queue! * http2_recv: easy 0x80068520 (stream 1) * nread=13 * on_frame_recv() header 3 stream 1 * Got frame type 3 for stream 1! * on_stream_close(), PROTOCOL_ERROR (err 1), stream 1 * Removed stream 1 hash! * nghttp2_session_mem_recv() returns 13 * All data in connection buffer processed * h2_process_pending_input: All data in connection buffer processed * HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1) * multi_done * Curl_http_done: called premature == 1 * free header_recvbuf!! * HTTP/2 DISCONNECT starts now * HTTP/2 DISCONNECT done * Closing connection 0 * The cache now contains 0 members * TLSv1.2 (OUT), TLS alert, Client hello (1): * Expire cleared curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1) Apache2.4.25 with mod_http2 nghttp2 1.17.0 verbose trace h2_session: AH03200: h2_session: created, max_streams=100, stream_mem=65536, workers_limit=6, workers_max=100, push_diary(type=0,N=256) h2_session: AH03201: h2_session: start, INITIAL_WINDOW_SIZE=65535, MAX_CONCURRENT_STREAMS=100 h2_session: AH03079: h2_session: started on mydomain.com:443 h2_session: AH03078: h2_session: transit [INIT] -- init --> [BUSY] h2_session: AH03068: h2_session: sent FRAME[SETTINGS[length=6, stream=0]], frames=0/0 (r/s) h2_session: AH03068: h2_session: sent FRAME[WINDOW_UPDATE[stream=0, incr=2147418112]], frames=0/1 (r/s) h2_session: AH03078: h2_session: transit [BUSY] -- no io (keepalive) --> [IDLE] h2_session: AH03066: h2_session: recv FRAME[SETTINGS[length=0, stream=0]], frames=0/2 (r/s) h2_session: AH03078: h2_session: transit [IDLE] -- data read --> [BUSY] h2_session: AH03068: h2_session: sent FRAME[SETTINGS[ack=1, stream=0]], frames=1/2 (r/s) h2_session: AH03078: h2_session: transit [BUSY] -- no io (keepalive) --> [IDLE] h2_stream: AH03082: h2_stream: opened h2_session: AH03066: h2_session: recv FRAME[HEADERS[length=31, hend=1, stream=1, eos=1]], frames=1/3 (r/s) h2_session: AH03078: h2_session: transit [IDLE] -- data read --> [BUSY] h2_session: AH03066: h2_session: recv FRAME[SETTINGS[ack=1, stream=0]], frames=2/3 (r/s) h2_task: AH03348: h2_task: open output to GET mydomain.com / h2_session: AH03466: h2_stream: no response, RST_STREAM, err=1 h2_session: AH03068: h2_session: sent FRAME[RST_STREAM[length=4, flags=0, stream=1]], frames=3/3 (r/s) h2_session: AH03065: h2_stream: closing with err=1 protocol error h2_mplx: AH03385: h2_task: destroy output beam empty=1, holds proxies=0 h2_session: AH03078: h2_session: transit [BUSY] -- no io (keepalive) --> [IDLE] h2_session: AH03401: h2_session: conn error -> shutdown h2_session: AH03068: h2_session: sent FRAME[GOAWAY[error=0, reason='', last_stream=1]], frames=3/4 (r/s) h2_session: AH03069: session: sent GOAWAY, err=0, msg= h2_session: AH03078: h2_session: transit [IDLE] -- local goaway --> [DONE] h2_conn: (70014)End of file found: AH03045: h2_session: process, closing conn