maskit opened a new pull request, #9616: URL: https://github.com/apache/trafficserver/pull/9616
This blog motivated me to implement CONNECT method support. https://daniel.haxx.se/blog/2023/04/14/curl-speaks-http-2-with-proxy/ ``` $ ~/opt/curl/bin/curl -vk --proxy-insecure --proxy-http2 -x https://localhost:8443/ https://www.apache.org/ > /dev/null % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 127.0.0.1:8443... * Connected to localhost (127.0.0.1) port 8443 (#0) * ALPN: offers h2,http/1.1 } [5 bytes data] * TLSv1.2 (OUT), TLS handshake, Client hello (1): } [512 bytes data] * TLSv1.2 (IN), TLS handshake, Server hello (2): { [122 bytes data] * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): } [1 bytes data] * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): { [15 bytes data] * TLSv1.3 (IN), TLS handshake, Certificate (11): { [1444 bytes data] * TLSv1.3 (IN), TLS handshake, CERT verify (15): { [520 bytes data] * TLSv1.3 (IN), TLS handshake, Finished (20): { [36 bytes data] * TLSv1.3 (OUT), TLS handshake, Finished (20): } [36 bytes data] * SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 * ALPN: server accepted h2 * Proxy certificate: * subject: C=AU; ST=Some-State; O=Internet Widgits Pty Ltd; CN=localhost * start date: Apr 16 01:33:15 2023 GMT * expire date: Apr 15 01:33:15 2024 GMT * issuer: C=AU; ST=Some-State; O=Internet Widgits Pty Ltd; CN=localhost * SSL certificate verify result: self signed certificate (18), continuing anyway. * CONNECT tunnel: HTTP/2 negotiated * Establish HTTP/2 proxy tunnel to www.apache.org:443 } [5 bytes data] * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): { [214 bytes data] * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): { [214 bytes data] * CONNECT tunnel established, response 200 * CONNECT phase completed * ALPN: offers h2,http/1.1 } [5 bytes data] * TLSv1.2 (OUT), TLS handshake, Client hello (1): } [512 bytes data] * TLSv1.2 (IN), TLS handshake, Server hello (2): { [122 bytes data] * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): } [1 bytes data] * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): { [19 bytes data] * TLSv1.3 (IN), TLS handshake, Certificate (11): { [4022 bytes data] * TLSv1.3 (IN), TLS handshake, CERT verify (15): { [264 bytes data] * TLSv1.3 (IN), TLS handshake, Finished (20): { [36 bytes data] * TLSv1.3 (OUT), TLS handshake, Finished (20): } [36 bytes data] * SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 * ALPN: server accepted h2 * Server certificate: * subject: CN=*.apache.org * start date: Apr 13 16:56:32 2023 GMT * expire date: Jul 12 16:56:31 2023 GMT * issuer: C=US; O=Let's Encrypt; CN=R3 * SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway. { [5 bytes data] * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): { [161 bytes data] * using HTTP/2 * h2h3 [:method: GET] * h2h3 [:path: /] * h2h3 [:scheme: https] * h2h3 [:authority: www.apache.org] * h2h3 [user-agent: curl/8.1.0-DEV] * h2h3 [accept: */*] * Using Stream ID: 1 (easy handle 0x55fb74068380) } [5 bytes data] > GET / HTTP/2 > Host: www.apache.org > user-agent: curl/8.1.0-DEV > accept: */* > { [5 bytes data] < HTTP/2 200 < server: Apache < last-modified: Sun, 16 Apr 2023 05:23:20 GMT < etag: "1195a-5f96d45bc947c" < cache-control: max-age=3600 < expires: Sun, 16 Apr 2023 06:23:21 GMT < content-security-policy: default-src 'self' 'unsafe-inline' https://www.apachecon.com/ https://www.google.com/cse/ https://cse.google.com/ https://www.googleapis.com/generate_204 http://*.google.com/generate_204 https://afs.googlesyndication.com/ https://csp.withgoogle.com/ https://www.google.com/images/ https://ssl.gstatic.com/ui/ https://docs.google.com/forms/ https://www.youtube.com/embed/; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cse.google.com/ http://cse.google.com/adsense/search/async-ads.js https://www.google.com/cse/ https://partner.googleadservices.com/; style-src 'self' 'unsafe-inline' https://www.google.com/cse/; frame-ancestors 'none'; < strict-transport-security: max-age=31536000; preload < content-type: text/html < via: 1.1 varnish, 1.1 varnish < accept-ranges: bytes < date: Sun, 16 Apr 2023 05:50:09 GMT < age: 1608 < x-served-by: cache-hel1410025-HEL, cache-dfw-kdfw8210029-DFW < x-cache: HIT, HIT < x-cache-hits: 4, 1 < x-timer: S1681624210.756756,VS0,VE1 < vary: Accept-Encoding < content-length: 72026 < { [5 bytes data] 100 72026 100 72026 0 0 556k 0 --:--:-- --:--:-- --:--:-- 558k * Connection #0 to host localhost left intact ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
