He estado intentando configurar un servidor web en localhost que admita HTTP/3. Ejecuté con éxito un servidor caddy ejecutado en docker que responde a las solicitudes GET con este encabezado:
alt-svc: h3-27=":443"; ma=2592000 content-encoding: gzip content-length: 1521 content-type: text/html; charset=utf-8 date: Thu, 07 May 2020 07:27:44 GMT server: Caddy status: 200 vary: Accept-Encoding X-DNS-Prefetch-Control: offAunque se recibió el encabezado alt-scv, no pude detectar ninguna solicitud h3-27 en los registros de red de las herramientas de desarrollo.
También creé una CA, que agregué a Chrome, y firmé el certificado del servidor que acepta Chrome. Ejecuté Chrome con las banderas --enable-quic --quic-version="h3-27" , como se sugiere en este artículo . Intenté lo mismo con un servidor nginx basado en esta imagen y no pude hacer que funcionara tan bien.
¿Qué me estoy perdiendo?
Caddyfile:
{ experimental_http3 } localhost { root * /usr/share/caddy/ encode zstd gzip templates file_server tls /etc/caddy/certs/localhost.crt /etc/caddy/certs/localhost.key }Salida del carrito:
2020/05/07 07:23:50.939 INFO using provided configuration {"config_file": "/etc/caddy/Caddyfile", "config_adapter": "caddyfile"} 2020/05/07 07:23:51.252 INFO admin admin endpoint started {"address": "tcp/localhost:2019", "enforce_origin": false, "origins": ["127.0.0.1:2019", "localhost:2019", "[::1]:2019"]} 2020/05/07 07:23:51 [INFO][cache:0xc00088da90] Started certificate maintenance routine 2020/05/07 07:23:51 [WARNING] Stapling OCSP: no OCSP stapling for [localhost bar.localhost]: no OCSP server specified in certificate 2020/05/07 07:23:51.254 INFO http skipping automatic certificate management because one or more matching certificates are already loaded {"domain": "localhost", "server_name": "srv0"} 2020/05/07 07:23:51.254 INFO http enabling automatic HTTP->HTTPS redirects {"server_name": "srv0"} 2020/05/07 07:23:51.255 INFO tls cleaned up storage units 2020/05/07 07:23:51.256 INFO http enabling experimental HTTP/3 listener {"addr": ":443"} 2020/05/07 07:23:51.257 INFO autosaved config {"file": "/config/caddy/autosave.json"} 2020/05/07 07:23:51.257 INFO serving initial configurationEncontré la razón yo mismo. La versión actual de Chrome (Versión 81.0.4044.138) no es compatible con esta versión de Quic (h3-27). Podría arreglarse usando chrome-dev (Versión 84.0.4136.5).