【问题标题】:https servlet with Jetty带有 Jetty 的 https servlet
【发布时间】:2011-05-23 09:28:02
【问题描述】:

我根据文档用 Jetty 编写了一个简单的 https servlet,但由于某种原因它不起作用。没有错误消息,什么都没有……浏览器连接到 servlet,但就是这样 - 连接后它永远挂起。代码如下:

    SslSocketConnector sslConnector =  new SslSocketConnector();
    sslConnector.setPort(5555);
    sslConnector.setKeystore(null);
    sslConnector.setHost("localhost");
    ((AbstractConnector) connector).setThreadPool(new QueuedThreadPool(20));
    server.addConnector (sslConnector);


ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.setContextPath("/");

    HandlerList handlers = new HandlerList();

    handlers.setHandlers(new Handler[] {context, new DefaultHandler() });
    server.setHandler(handlers);

    MyServlet servlet = new MyServlet();
    context.addServlet(new ServletHolder(servlet), "/*");

    server.start();
    server.join();       

【问题讨论】:

    标签: java servlets ssl https jetty


    【解决方案1】:

    sslConnector.setKeystore(null);

    对于 SSL 连接,您需要添加 SSL 证书,可以使用 JDK 中提供的工具生成。

    见

    http://download.oracle.com/javaee/1.4/tutorial/doc/Security6.html

    【讨论】:

    • 来自 Jetty 文档:keystore - 密钥库的资源路径,或 null 用于内置密钥库。
    • 看起来这是 Jetty 文档中的一个错误 - 毕竟它不能为空,这个“内部密钥库”,不管是什么意思,要么不工作,要么不存在
    猜你喜欢
    • 2021-12-25
    • 2021-12-24
    • 2015-02-25
    • 2012-12-06
    • 2014-10-29
    • 1970-01-01
    • 2016-02-07
    • 2015-09-23
    • 2023-03-29
    相关资源
    最近更新 更多