Did anyone actually manage to make HTTP2 in Twisted work with Google-Chrome? I tried to do this today, and it seems this is surprisingly difficult. It turns out that Chrome requires ALPN and it dropped support for NPN. ALPN is only supported with OpenSSL 1.0.2 or above, which by default is not available in most systems. This is
discussed here. I tried setting up docker image with Ubuntu 16.04 that has required version of OpenSSL, but it seems that Chrome still doesn't like it. It returns ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY error and fails to load page. Looking up this error I found out this might be happening because some TSL ciphers are blacklisted in HTTP2, there is nice answer
about this here it links to this part of HTTP2 spec
https://http2.github.io/http2-spec/#rfc.section.9.2.2My question is: should user deal with this kind of stuff themselves? If some ciphers are blacklisted in HTTP2 shouldn't this be handled somewhere in Twisted? E.g. perhaps there should be some Http2SSLContextFactory? If you'd like to reproduce this I did some sample repo here:
https://github.com/pawelmhm/sf-books-http2 it contains dockerfile that builds from Ubuntu 16.04 and runs simple Twisted HTTP 2 resource.