以编程方式为Jetty 9嵌入式配置SSL

use*_*205 23 ssl jetty

我正在使用jetty版本9.0.0.M4,我正在尝试将其配置为接受SSL连接.按照以下说明操作:http: //www.eclipse.org/jetty/documentation/current/configuring-connectors.html

我设法写了一些有用的东西.但是,我写的代码看起来很丑陋而且不必要地复杂.知道如何正确地做到这一点?

final Server server = new Server(Config.Server.PORT);

SslContextFactory contextFactory = new SslContextFactory();
contextFactory.setKeyStorePath(Config.Location.KEYSTORE_LOCATION);
contextFactory.setKeyStorePassword("******");
SslConnectionFactory sslConnectionFactory = new SslConnectionFactory(contextFactory, org.eclipse.jetty.http.HttpVersion.HTTP_1_1.toString());

HttpConfiguration config = new HttpConfiguration();
config.setSecureScheme("https");
config.setSecurePort(Config.Server.SSL_PORT);
config.setOutputBufferSize(32786);
config.setRequestHeaderSize(8192);
config.setResponseHeaderSize(8192);
HttpConfiguration sslConfiguration = new HttpConfiguration(config);
sslConfiguration.addCustomizer(new SecureRequestCustomizer());
HttpConnectionFactory httpConnectionFactory = new HttpConnectionFactory(sslConfiguration);

ServerConnector connector = new ServerConnector(server, sslConnectionFactory, httpConnectionFactory);
connector.setPort(Config.Server.SSL_PORT);
server.addConnector(connector);

server.start();
server.join();
Run Code Online (Sandbox Code Playgroud)

Joa*_*elt 11

ServerConnector应设置有SslContextFactory.

您在HttpConfiguration中执行的其余工作与设置SSL无关.

嵌入式jetty示例项目中维护了在嵌入模式下设置SSL的一个很好的示例. http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java

编辑:更清楚(谢谢Erik)

更新:2016年6月

Eclipse Jetty Project已将其规范存储库移至github.

LikeJettyXml.java现在可以在上面找到上述内容

https://github.com/eclipse/jetty.project/blob/jetty-9.4.x/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java


Bwi*_*ire 5

对于码头9有一个很好的参考这里和所有你需要做的就是创建JKS密钥库文件作为说明在这里.使用命令keytool -genkey -alias sitename -keyalg RSA -keystore keystore.jks -keysize 2048.由于某种原因,使用码头8的东西不适用于9.