当前栏目
Undertow中的HTTPS
我有一个在Tomcat上运行的Web服务,并决定尝试使用Undertow。一般来说,这很好,但我需要HTTPS支持,并且无法启用它。下面是一些代码的HelloWorld:Undertow中的HTTPS
DeploymentInfo servletBuilder = deployment()
.setClassLoader(ServletServer.class.getClassLoader())
.setContextPath("/")
.setDeploymentName("AuthenticationService.war")
.addServlet(servlet("WSServlet", WSServlet.class))
.addListener(listener(WSServletContextListener.class))
.setResourceManager(new FileResourceManager(new File("src/main/webapp"), 100));
DeploymentManager manager = defaultContainer().addDeployment(servletBuilder);
manager.deploy();
HttpHandler servletHandler = manager.start();
SSLContext context = createSSLContext(loadKeyStore("server-keystore.jsk"), loadKeyStore("server-truststore.jks"));
PathHandler path = Handlers.path(servletHandler);
Undertow server = Undertow.builder()
.addHttpsListener(8443, "localhost", context)
.setHandler(path)
.build();
server.start();
而且createSSLContext方法:
private static SSLContext createSSLContext(final KeyStore keyStore, final KeyStore trustStore) throws Exception {
KeyManager[] keyManagers;
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, /* password */);
keyManagers = keyManagerFactory.getKeyManagers();
TrustManager[] trustManagers;
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trustStore);
trustManagers = trustManagerFactory.getTrustManagers();
SSLContext sslContext;
sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagers, trustManagers, null);
return sslContext;
}
而且loadKeyStore方法:
private static KeyStore loadKeyStore(String name) throws Exception {
final InputStream stream = new FileInputStream(name);
try(InputStream is = stream) {
KeyStore loadedKeystore = KeyStore.getInstance("JKS");
loadedKeystore.load(is, /* password */);
return loadedKeystore;
}
}
服务器开始,而是试图将请求发送到https://localhost:8443/ ..没有影响,没有日志或例外或一些反应。当使用http://localhost:8443它抛出异常
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
我是新来的所有的网络技术,使所有可能很奇怪。那么这里有什么问题?
goldaniga
这是否与HTTP侦听器相同的部署工作? –
你知道了吗? –
回答
我不知道,但自签名和/或不信任的证书会造成问题,但你应该得到一些例外asbout这个
我不知道知道什么是undertow
,但您可以从文档检查SSL
配置。
您还需要检查服务器和客户端是否支持公用密码和协议
例如,JRE的默认包不支持AES_256
。
Undertow中的HTTPS
相关文章
- 两位谷歌华人研究员发布首个纯视觉「移动UI理解」模型,四大任务刷新SOTA
- Akamai 在 2023 年度 Gartner® Peer Insights™ 中荣获云端 WAAP 领域的“客户之选”称号
- SpringBoot 如何保证接口安全?老鸟们都是这么玩的!
- “世界杯”谨防网络骗局和网络攻击!F5护航应用安全,让球迷安心看球
- H5和小程序的测试点,从哪方面分析?
- 微软推出集成 ChatGPT 的新版必应搜索,但官方警告称其有时会误报所找到的信息
- 关于 HTTP(S) 和 RPC 十问—网络知识第三篇
- 为什么应用程序依赖关系映射对于云迁移至关重要
- 使用 Tektoncd Operator 管理 Tekton 组件
- 字节一面:网站显示不出来,怎么排查?
- 云原生架构成功的六大原则
- 4G改变生活,5G改变社会,那么6G改变什么?
- 仅仅因为利润巨大吗?谷歌布局Web3意欲何为
- 计算机不会骗人,事出反常必有妖!
- 终于有人把Knative讲明白了
- 性能提升一倍!云原生网关支持 TLS 硬件加速
- 上网老有小广告?原来运营商和路由器都可能坑你
- 一文详解微服务架构
- 十倍效能提升——Web 基础研发体系的建立
- 设计稿自动生成可用页面的展望