Я пытаюсь повторить это руководство < /p>
Это мой настройщик < /p>
@Component
class Http3NettyWebServerCustomizer implements WebServerFactoryCustomizer {
@Override
public void customize(NettyReactiveWebServerFactory factory) {
factory.addServerCustomizers(server -> {
SslBundle sslBundle = factory.getSslBundles().getBundle("http3");
Http3SslContextSpec sslContextSpec =
Http3SslContextSpec.forServer(sslBundle.getManagers().getKeyManagerFactory(), sslBundle.getKey().getPassword());
return server
// Configure HTTP/3 protocol
.protocol(HttpProtocol.HTTP3)
// Configure HTTP/3 SslContext
.secure(spec -> spec.sslContext(sslContextSpec))
.http3Settings(spec -> spec.idleTimeout(Duration.ofSeconds(5))
.maxData(10_000_000)
.maxStreamDataBidirectionalRemote(1_000_000)
.maxStreamsBidirectional(100));
});
}
}
< /code>
Это мой контроллер: < /p>
@RestController
public class HelloController {
@GetMapping("/hello")
String hello() {
return "Hello HTTP/3!";
}
}
< /code>
Это свойства моего приложения: < /p>
spring.application.name=http3app
server.port=888
spring.ssl.bundle.jks.http3.key.alias=http3
spring.ssl.bundle.jks.http3.keystore.location=classpath:keystore.p12
spring.ssl.bundle.jks.http3.keystore.password=changeit
spring.ssl.bundle.jks.http3.keystore.type=PKCS12
< /code>
для генерации хранилища ключей, который я использовал: < /p>
keytool -genkeypair -alias http3 -keyalg RSA -keysize 4096 \
-validity 3650 -dname "CN=localhost" -keypass changeit -keystore keystore.p12 \
-storeType PKCS12 -storepass changeit
< /code>
Когда я пытаюсь открыть страницу «Localhost: 888 /hello» в браузере, я получаю ошибку:
err_connection_refused < /p>
Браузер: Chrome v128 < /p>
Что я делаю неправильно? сертификат. Если я переключу на HTTP 1, все работает. Можете ли вы сказать мне, как сгенерировать и правильно поставить сертификат?
Подробнее здесь: https://stackoverflow.com/questions/794 ... controller