如何配置jetty在多个端口上侦听ssl连接:一个有多个端口,一个没有多个端口

如何配置jetty在多个端口上侦听ssl连接:一个有多个端口,一个没有多个端口,ssl,jetty,mutual-authentication,Ssl,Jetty,Mutual Authentication,我对jetty还不太熟悉,但我已经翻了很多页试图找到这个问题的答案 我希望有一个jetty实例运行一个webapp。我需要它在两个端口上侦听SSL连接—一个使用相互SSL,另一个使用普通SSL(我将对该端口使用不同的身份验证方法) 我找到的最接近答案是——但它与常规的旧http连接有关——我认为它可能已经过时了 我很确定这将涉及对jetty-ssl.xml、jetty-ssl-context.xml和jetty-https.xml的调整。但是,我们无法将这些拼图拼凑在一起,这既有可能,也不会导致

我对jetty还不太熟悉,但我已经翻了很多页试图找到这个问题的答案

我希望有一个jetty实例运行一个webapp。我需要它在两个端口上侦听SSL连接—一个使用相互SSL,另一个使用普通SSL(我将对该端口使用不同的身份验证方法)

我找到的最接近答案是——但它与常规的旧http连接有关——我认为它可能已经过时了

我很确定这将涉及对jetty-ssl.xml、jetty-ssl-context.xml和jetty-https.xml的调整。但是,我们无法将这些拼图拼凑在一起,这既有可能,也不会导致堆栈跟踪(更不用说做我想做的事情了)


我最好的猜测是,我需要创建第二个需要相互验证的上下文工厂(类似于现有的sslContextFactory),然后添加另一个对AddFabSentConnectionFactory的调用以将其连接起来。但是,虽然我似乎有能力限制上下文工厂需要相互身份验证,但我不知道如何将上下文工厂绑定到单独的端口上运行。

我想我已经解决了这个问题,希望这能帮其他人省去很多挫折。以下是我所做的:

  • 创建第二个上下文工厂以要求相互身份验证。似乎我需要在与第一个文件(jetty ssl context.xml)不同的单独文件中执行此操作,否则jetty会抱怨,因此我创建了jetty-ssl-context-mtls.xml,并在https.mod文件中添加了对新文件的引用
  • 创建第二个连接器以指向第二个端口(jetty ssl.xml)
  • 将第二个连接器配置为使用第二个上下文工厂。与我对ssl上下文所做的类似,我需要在与第一个文件(jetty https.xml)不同的单独文件中执行此操作,否则jetty会抱怨,因此我创建了jetty-https-mtls.xml,并在https.mod文件中添加了对新文件的引用