Я нашел документ Http2Protocol , что он не поддерживает HTTPS?
Некоторые протоколы (например, HTTP/2) поддерживают обновление HTTP только через незащищенные соединения.
Это опечатка, или я должен использовать HTTP, а не HTTPS при использовании Tomcat HTTP2, или я что-то упустил?
Поскольку я добавил UpgradeProtocol в
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
Для HTTP-коннектора:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"/>
И добавил соответствующий alpn jar в JAVA_OPT, используя -Xbootclasspath/p:/path/to/alpn-boot.jar
Но он не находит соответствующее правило:
org.apache.tomcat.util.digester.Digester.endElement No rules found matching 'Server/Service/UpgradeProtocol'.
Я также попытался добавить в коннектор реализация openssl, но тот же результат
sslImplementationName="org.apache.tomcat.util.net.openssl.OpenSSLImplementation"
Поскольку реализация TLS в Java 8 не поддерживает ALPN (который требуется для HTTP/2 поверх TLS), вы должны использовать реализацию TLS на основе OpenSSL, чтобы включить поддержку HTTP/2. См. атрибут sslImplementationName соединителя.
Должен ли я использовать сертификат/SSL для HTTP2?