我有一台运行Jetty的机器。在那儿,我有多个在不同端口上运行的码头实例。例如,我的“实时”版本在默认端口80上运行。我的“ R&D”版本在同一台机器上但端口2280上运行。这很好,但是客户端需要添加SSL,因此默认端口会现在正在从端口443运行。问题是当我尝试同时运行两个版本时,R&D版本将失败,因为它由于SSL试图映射到443。该配置仍具有指向2280的R&D,但无法启动。有没有一种方法可以使用单个SSL证书同时运行两者?我尝试在jetty.xml文件中添加连接器,但这没有用。谢谢。
最佳答案
您如何添加连接器?您绝对可以配置连接器的端口。
我通常以编程方式运行Jetty,我的代码如下:
int httpsPort = ...;
HttpConfiguration httpConfig = new HttpConfiguration();
httpConfig.setSecureScheme("https");
httpConfig.setSecurePort(httpsPort);
SslContextFactory sslContextFactory = new SslContextFactory();
// configure sslContextFactory: keystore, session timeout, exlcluded protocols etc...
ServerConnector httpsCon = new ServerConnector(server, new SslConnectionFactory(sslContextFactory, "http/1.1"), new HttpConnectionFactory(httpConfig));
httpsCon.setPort(httpsPort);
server.addConnector(httpsCon);
抱歉,我不确定如何通过XML服务器配置进行配置,但是它们倾向于在XML配置和编程配置之间非常紧密地映射。