gpt4 book ai didi

java - 嵌入式 Tomcat 启用 SSL

转载 作者:搜寻专家 更新时间:2023-10-30 23:02:40 24 4
gpt4 key购买 nike

我正在尝试为嵌入式 Tomcat 设置 SSL。两个连接器都启动了,但我只在 http 上得到响应。在 https 上,当我尝试 http://localhost:9000/ 时,我在 chrome 中收到“未收到数据消息”端口开放:我试过远程登录 远程登录本地主机 9000和我有联系。我也试过 openssl s_client -connect localhost:9000和获取/方法我的 servlet 在控制台中打印出预期的结果。我不明白为什么我在浏览器(chrome 和 Firefox)中会收到此错误我的操作系统是 Ubuntu 14.04,我尝试使用 Java 7 和 Java 8 得到相同的结果。来自 Maven 仓库的 Tomcat 版本是 8.0.23代码是:

public class Main {

public static void main(String[] args) throws Exception {
Tomcat tomcat = new Tomcat();
Service service = tomcat.getService();
service.addConnector(getSslConnector());


File base = new File(System.getProperty("java.io.tmpdir"));
Context rootCtx = tomcat.addContext("/", base.getAbsolutePath());
Tomcat.addServlet(rootCtx, "emptyServlet", new EmptyServlet());
rootCtx.addServletMapping("/*", "emptyServlet");
tomcat.start();
tomcat.getServer().await();

}

private static Connector getSslConnector() {
Connector connector = new Connector();
connector.setPort(9000);
connector.setSecure(true);
connector.setScheme("https");
connector.setAttribute("keyAlias", "tomcat");
connector.setAttribute("keystorePass", "password");
connector.setAttribute("keystoreType", "JKS");
connector.setAttribute("keystoreFile",
"keystore.jks");
connector.setAttribute("clientAuth", "false");
connector.setAttribute("protocol", "HTTP/1.1");
connector.setAttribute("sslProtocol", "TLS");
connector.setAttribute("maxThreads", "200");
connector.setAttribute("protocol", "org.apache.coyote.http11.Http11AprProtocol");
connector.setAttribute("SSLEnabled", true);
return connector;
}
}

您可以在 github 上找到 keystore

我已经尝试过不同的 keystore ,但结果相同。 keystore 看起来也不错:keytool -list -keystore keystore.jks 似乎符合预期。 提前致谢

最佳答案

原来是我的错。该服务已启动并正在运行,但我继续尝试 http://localhost:9000不是https://locahost:9000在我的浏览器中

关于java - 嵌入式 Tomcat 启用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31033751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com