Dan*_*ipa 6 java ssl https tomcat
我正在尝试为嵌入式Tomcat设置SSL.两个连接器都启动但我只得到http的响应.在https上,当我尝试http://localhost:9000/
端口打开时,我得到了一个"没有数据收到消息" :我已经尝试了telnet
telnet localhost 9000
并且我有一个连接.我也试过
openssl s_client -connect localhost:9000
和GET /方法,我的servlet在控制台中打印出预期的结果.我不明白为什么我在浏览器中遇到这个错误(chrome和Firefox)我的操作系统是Ubuntu 14.04,我试过Java 7和Java 8都有相同的结果.来自Maven repo的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;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在github上找到它的密钥库
我已经尝试过不同的密钥库但结果相同.密钥库也看起来很好:keytool -list -keystore keystore.jks似乎是预期的.提前致谢
| 归档时间: |
|
| 查看次数: |
5882 次 |
| 最近记录: |