저는 자체 서명 인증서를 사용하여 Ubuntu 14.04에서 Jetty가 내장 된 기본 포트 443 (웹 서버 A)에 HTTPS를 통해 웹 응용 프로그램을 제공하고 있습니다. 이제는 오래 동안 잘 작동했지만, 같은 머신에서 다른 임베디드 Jetty 웹 서버 (serverB)를 실행하고 싶습니다. serverB가 기본 포트 443을 사용하여 SSL을 실행하도록하고 싶습니다. 그래서 serverA를 변경하여 다른 포트에서 요청을 수신해야합니다.443 이외의 포트를 통해 HTTPS가 내장 된 Jetty를 사용하는 방법은 무엇입니까?
저는 444와 8080을 사용하여 serverA를 시험해 보았습니다. 올바른 포트에서 요청을 수신하고 있음을 알리는 서버가 정상적으로 작동합니다. 요청은 멈추고 서버 로그는 아무 것도 말하지 않습니다. 서버를 포트 443에서 청취하면 모든 것이 정상적으로 작동합니다.
SSL을 사용하도록 웹 서버를 구성한 경우 어떤 포트를 사용하든별로 중요하지 않다고 생각했습니다. 내가해야 할 일이 있니?
// Java 7 bug (feature?) - this disables SNI everywhere...
// required or else outgoing HTTPS requests will fail
System.setProperty("jsse.enableSNIExtension", "false");
PropertyConfigurator.configure("./log4j.properties");
Server server = new Server();
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setWar("war");
server.setHandler(webapp);
HttpConfiguration https = new HttpConfiguration();
https.addCustomizer(new SecureRequestCustomizer());
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStorePath("keystore.jks");
sslContextFactory.setKeyStorePassword("password");
sslContextFactory.setKeyManagerPassword("password");
ServerConnector sslConnector = new ServerConnector(server,
new SslConnectionFactory(sslContextFactory, "http/1.1"),
new HttpConnectionFactory(https));
sslConnector.setPort(port);
server.setConnectors(new Connector[] { sslConnector });
try {
LOG.info("Starting server on port " + port);
server.start();
server.join();
} catch (Exception e) {
LOG.fatal("The web server has crashed", e);
}
참고 :
가 여기 내 발사 코드의 내가 이해로부터, HTTPS에 사용되는 포트는 중요하지 않습니다, 때문에 수퍼 유저 또는 뭔가에 StackOverflow과없는 이유입니다. 나는 이것이 부두 문제라고 가정하고있다.
편집 :는
죄송합니다, 부두 버전을 언급하는 것을 잊었다. 그것은 9.2.0
괜찮습니다. 최신 성숙/안정 릴리스는'9.2.3.v20140905'입니다. –
그런데, 나는 jetty-all-9.2.0.M0.jar를 사용하고 있습니다 - 그렇지 않아야합니까? – RTF
테스 터만 불안정한 것으로 간주되는 시험판 "마일스톤 0"입니다. –