以编程方式为Jetty 9 embedded配置SSL
我正在使用jetty 9.0.0.M4版本,并尝试将其配置为接受SSL连接。 遵循中的说明: 我设法写了一些有用的东西。 然而,我写的代码看起来很难看,不必要的复杂。 你知道怎么做吗以编程方式为Jetty 9 embedded配置SSL,ssl,jetty,Ssl,Jetty,我正在使用jetty 9.0.0.M4版本,并尝试将其配置为接受SSL连接。 遵循中的说明: 我设法写了一些有用的东西。 然而,我写的代码看起来很难看,不必要的复杂。 你知道怎么做吗 final Server=新服务器(Config.Server.PORT); SslContextFactory contextFactory=新的SslContextFactory(); setKeyStorePath(Config.Location.KEYSTORE\u位置); setKeyStorePass
final Server=新服务器(Config.Server.PORT);
SslContextFactory contextFactory=新的SslContextFactory();
setKeyStorePath(Config.Location.KEYSTORE\u位置);
setKeyStorePassword(“*******”);
SslConnectionFactory SslConnectionFactory=新的SslConnectionFactory(contextFactory,org.eclipse.jetty.http.HttpVersion.http_1_1.toString());
HttpConfiguration config=新的HttpConfiguration();
配置设置安全模式(“https”);
config.setSecureReport(config.Server.SSL_端口);
config.setOutputBufferSize(32786);
config.setRequestHeaderSize(8192);
config.setResponseHeaderSize(8192);
HttpConfiguration sslConfiguration=新的HttpConfiguration(配置);
addCustomizer(新的SecureRequestCustomizer());
HttpConnectionFactory HttpConnectionFactory=新的HttpConnectionFactory(SSL配置);
ServerConnector连接器=新的ServerConnector(服务器、sslConnectionFactory、httpConnectionFactory);
connector.setPort(Config.Server.SSL\u端口);
addConnector(连接器);
server.start();
join();
应使用设置
您在中所做的其余工作与设置SSL无关 项目中维护了在嵌入式模式下设置SSL的一个很好的示例。 编辑:为了更清楚(谢谢Erik) 更新日期:2016年6月 EclipseJetty项目已将其规范存储库移动到github 上面的
LikeJettyXml.java
现在可以在
对于Jetty 9,有一个很好的参考,您需要做的就是创建JKS密钥库文件,如前所述。
使用命令
keytool-genkey-alias sitename-keyalg RSA-keystore keystore.jks-keysize 2048
。由于某些原因,jetty 8的工作方式与jetty 9的工作方式不同。对于无法实现上述配置的用户:
如果您使用的是Java1.7,请确保您有最新的更新。jvm 1.7的第一个版本会导致访问https网页时出现问题(浏览器可能会显示:连接重置、连接中止或无数据接收错误)。“您在HttpConfiguration中所做的其余工作是不必要的。”-那么有没有更好的方法来设置请求/响应头大小?我不是说您不能使用它,只是,通常不需要它来实现你在问题中设定的目标。如果您需要控制标题,那么请务必使用HttpConfiguration。@JoakimErdfelt:我必须承认,“不必要”部分也让我困惑了几分钟。。。也许最好说“与设置SSL无关”。否则+1在这个问题上做得很好第一个链接不再有效。第二个链接可能只对那些已经对Jetty有了大量知识的人有用。