Stick with stackoverflow, its more durable and its results show up on
google results in a much better position than the jetty-users mailing list.

Your question over there was answered btw.

--
Joakim Erdfelt <[email protected]>
webtide.com <http://www.webtide.com/> - intalio.com/jetty
Expert advice, services and support from from the Jetty & CometD experts
eclipse.org/jetty - cometd.org

On Thu, Apr 23, 2015 at 9:31 AM, Josh Davis <[email protected]> wrote:

>  I'm writing a server app that uses secure websockets using embedded Jetty
> 9.3.0.M2. When I run it without secure sockets, everything is copacetic,
> but when I enable the secure sockets, my clients get connection refused and
> nmap shows that the port is closed. There are no errors in the log on the
> server side.
>
> I believe that my .jks, .crt, .pem, and .key files and my keystore
> password are all correct, because other apps on this same server are using
> the same ones and are working.
>
> Here is the code that launches the Jetty server. Everything works when it
> uses the regular socket.
>
> ------------------------------------------------------------
> if (keyStorePath != null) {
>     // use secure sockets
>     server = new Server();
>     HttpConfiguration https = new HttpConfiguration();
>     https.addCustomizer(new SecureRequestCustomizer());
>
>     SslContextFactory sslContextFactory = new SslContextFactory();
>     sslContextFactory.setKeyStorePath(keyStorePath);
>     sslContextFactory.setKeyStorePassword(keyStorePassword);
>     sslContextFactory.setKeyManagerPassword(keyStorePassword);
>     ServerConnector sslConnector = new ServerConnector(server,
>             new SslConnectionFactory(sslContextFactory,
> HttpVersion.HTTP_1_1.asString()),
>             new HttpConnectionFactory(https));
>     sslConnector.setHost(serverName);
>     sslConnector.setPort(port);
>     server.setConnectors(new Connector[] { sslConnector });
> } else {
>     // use regular sockets
>     server = new Server(port);
> }
>
> server.setStopAtShutdown(true);
> server.setDumpAfterStart(false);
> server.setDumpBeforeStop(false);
> ServletContextHandler servletContextHandler =
>         new ServletContextHandler(ServletContextHandler.SESSIONS);
> servletContextHandler.setContextPath(contextPath);
> server.setHandler(servletContextHandler);
> ServerContainer container =
>
> WebSocketServerContainerInitializer.configureContext(servletContextHandler);
> container.addEndpoint(MyWebsocketEndpoint.class);
> server.start();
> logger.info("Started server: " + server);
> if (server.getConnectors().length > 0) {
>     logger.info("Connector = " + server.getConnectors()[0] +
>             " isRunning=" + server.getConnectors()[0].isRunning());
> }
> ------------------------------------------------------------
> When keyStorePath is not null (meaning use secure sockets), the log looks
> like this:
>
> ------------------------------------------------------------
> 2015-04-23 16:07:37.634:INFO::main: Logging initialized @114ms
> 2015-04-23 16:07:37.863:INFO:oejs.Server:main: jetty-9.3.0.M2
> 2015-04-23 16:07:38.408:INFO:oejsh.ContextHandler:main: Started
> o.e.j.s.ServletContextHandler@3abd7ff4{/websockets,null,AVAILABLE}
> 2015-04-23 16:07:38.489:INFO:oejs.ServerConnector:main: Started
> ServerConnector@2e4996ea{SSL,[ssl, http/1.1]}{my.server.com:8085}
> 2015-04-23 16:07:38.490:INFO:oejs.Server:main: Started @973ms
> Apr 23, 2015 4:07:38 PM
> com.crowdoptic.conference.jetty.JettyWebSocketServer start
> INFO: Started server: org.eclipse.jetty.server.Server@7205c140
> Apr 23, 2015 4:07:38 PM
> com.crowdoptic.conference.jetty.JettyWebSocketServer start
> INFO: Connector = ServerConnector@2e4996ea{SSL,[ssl, http/1.1]}{
> my.server.com:8085} isRunning=true
> ------------------------------------------------------------
> nmap on port 8085 shows
>
> ------------------------------------------------------------
> PORT     STATE  SERVICE
> 8085/tcp closed unknown
> ------------------------------------------------------------
> The error in my JavaScript console is "Error in connection establishment:
> net::ERR_CONNECTION_REFUSED"
>
> When keyStorePath is null (meaning use sockets), the log looks like this:
>
> ------------------------------------------------------------
> 2015-04-23 16:15:19.624:INFO::main: Logging initialized @115ms
> 2015-04-23 16:15:19.847:INFO:oejs.Server:main: jetty-9.3.0.M2
> 2015-04-23 16:15:20.431:INFO:oejsh.ContextHandler:main: Started
> o.e.j.s.ServletContextHandler@403108f6{/websockets,null,AVAILABLE}
> 2015-04-23 16:15:20.446:INFO:oejs.ServerConnector:main: Started
> ServerConnector@4efce9a2{HTTP/1.1,[http/1.1]}{0.0.0.0:8085}
> 2015-04-23 16:15:20.450:INFO:oejs.Server:main: Started @941ms
> Apr 23, 2015 4:15:20 PM
> com.crowdoptic.conference.jetty.JettyWebSocketServer start
> INFO: Started server: org.eclipse.jetty.server.Server@57a20888
> Apr 23, 2015 4:15:20 PM
> com.crowdoptic.conference.jetty.JettyWebSocketServer start
> INFO: Connector = ServerConnector@4efce9a2{HTTP/1.1,[http/1.1]}{
> 0.0.0.0:8085} isRunning=true
> ------------------------------------------------------------
> nmap on port 8085 shows
>
> PORT     STATE  SERVICE
> 8085/tcp open   unknown
> ------------------------------------------------------------
> And the app works great from the browser. I'm stumped. I have tried many
> permutations of the code to set up the SSL, but to no avail. Thank you for
> looking at this.
>
>
> --
> Josh Davis
> Senior Software Engineer
> 919-271-9384
> CrowdOptic <http://www.CrowdOptic.com/>
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to