Spring boot 如何在没有SSL配置的情况下使用spring引导和tomcat启用http2

Spring boot 如何在没有SSL配置的情况下使用spring引导和tomcat启用http2,spring-boot,http2,tomcat9,Spring Boot,Http2,Tomcat9,我已经在springboot2.1.2中启用了http2.0,并在application.property文件中使用下面的配置启用了带有SSL的Tomcat- server.port=8443 server.http2.enabled=true security.require-ssl=true server.ssl.key-store-type=PKCS12 server.ssl.key-store=classpath:.keystore server.ssl.key-store-passwo

我已经在springboot2.1.2中启用了http2.0,并在application.property文件中使用下面的配置启用了带有SSL的Tomcat-

server.port=8443
server.http2.enabled=true
security.require-ssl=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:.keystore
server.ssl.key-store-password=xxxxxx
erver.ssl.key-alias=test
它工作正常,我可以看到http版本打印为“http/2.0”,Chrome开发工具中也显示为h2。但禁用SSL后,http版本将变为1.1

Is http 2.0不支持SSL(https)。如果支持,如何配置

。这既有现实原因,也有思想原因

从实用的角度来看,用HTTPS包装数据包可以大大降低不支持HTTP/2的基础设施无法处理新协议的可能性。微软是唯一一个表示他们将允许未加密的HTTP/2的浏览器,但即使他们最终也没有(显然是在看到连接错误后)。HTTP/2也可以作为TLS握手的一部分进行协商,从而节省升级到HTTP/2的时间

在意识形态方面,人们认识到,出于安全和隐私的原因,所有网络流量都应该加密,因此浏览器鼓励使用HTTPS(或者更准确地说,他们不鼓励普通的HTTP使用),但仅限制对HTTP/2到HTTPS连接等一些新功能的访问

即使浏览器只支持HTTPS上的HTTP/2,协议本身也不强制要求这样做。例如,如果您在边缘节点终止HTTPS,则允许通过后端连接使用HTTP/2。与浏览器通常运行的开放式互联网相比,您更能控制这种流量。因此,您可以使用curl测试您的设置,例如,检查未加密的HTTP/2是否有效(假设您有最新版本的curl支持此功能):

尽管如果您确实希望将此测试用于浏览器访问,此测试的有用性仍有争议。

。可能重复。
curl --http2-prior-knowledge -v http://www.example.com