I'm using jetty version 9.0.0.M4 and am trying to configure it to accept SSL connections. following the instructions in: http://www.eclipse.org/jetty/documentation/current/configuring-connectors.html
I've managed to write something that works. However, the code I wrote seems ugly and unnecessarily complex. Any idea how to do this properly?
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();
The Jetty component provides HTTP-based endpoints for consuming and producing HTTP requests. That is, the Jetty component behaves as a simple Web server.
Jetty is an open-source project providing an HTTP server, HTTP client, and javax. servlet container.
The ServerConnector should be setup with an SslContextFactory.
The rest of the work you are doing in the HttpConfiguration is irrelevant to setting up SSL.
A good example of setting up SSL in embedded mode is maintained in the embedded jetty examples project. http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
Edit: to be more clear (thanks Erik)
Update: June 2016
The Eclipse Jetty Project has moved its canonical repository to github.
The above LikeJettyXml.java can now be found at
https://github.com/eclipse/jetty.project/blob/jetty-9.4.x/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
For Jetty 9 there is a good reference here and all you need to do is to create the JKS keystore file as explained here. using the command keytool -genkey -alias sitename -keyalg RSA -keystore keystore.jks -keysize 2048. For some reason what works with jetty 8 is not what works on 9.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With