|
|
|

keytool -genkeypair -alias http2-alias -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650
server:
ssl:
enabled: true
key-store: classpath:keystore.p12
key-store-password: your-password
key-store-type: PKCS12
key-alias: http2-alias
http2:
enabled: true
@Configuration
public class Http2Config {
@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> getWebServerFactoryCustomizer() {
return factory -> {
Connector httpConnector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
httpConnector.setPort(8080);
factory.addConnectorCustomizers(connector -> connector.addUpgradeProtocol(new Http2Protocol()));
factory.addAdditionalTomcatConnectors(httpConnector);
};
}
}
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost' -keyout server.key -out server.cert
import express from 'express';
import { createSecureServer } from 'http2';
import fs from 'fs';
const app = express();
app.get('/api/data', (req, res) => {
res.json({ message: 'Hello from HTTP/2!' });
});
const options = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.cert'),
};
createSecureServer(options, app).listen(3443, () => {
console.log('HTTP/2 API running on https://localhost:3443');
});