如何配置jetty以侦听多个端口以进行ssl连接:一个使用mutualAuth,一个不使用

时间:2017-09-19 00:55:51

标签: ssl jetty mutual-authentication

我对码头很新,但我已经挖了很多页,试图找到这个答案。

我希望有一个运行单个webapp的jetty实例。我需要它来监听两个端口上的SSL连接,一个使用相互ssl,一个使用普通的ssl(我将使用不同的auth方法)。

我找到答案的最接近的是this - 但它关注的是常规的旧http连接 - 我认为它可能已经过时了。

我很确定这会涉及对jetty-ssl.xml,jetty-ssl-context.xml和jetty-https.xml的调整。 。 。但是无法将拼图拼凑在一起,这两者都是合理的,并且不会导致堆栈跟踪(更不用说做我想要的了)。

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

1 个答案:

答案 0 :(得分:1)

我想我已经明白了 - 希望这会让别人沮丧得多。这是我做的:

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