我已经遵循Spring Boot设置并且可以轻松地使用SSL运行Tomcat,但是我想使用Jetty并且那里没有很少的文档。我可以访问JettyEmbeddedServletContainerFactory
,但它不使用相同的接口方法来访问配置。
有没有人有幸在spring boot中配置jetty 9来使用SSL?我发现了一个类似的问题here,并想知道是否有人解决了这个问题。
任何帮助都会很棒。
答案 0 :(得分:4)
所以最近有一个问题发布到Spring Boot(我在这里或之前的那天或之前,很好的时机),通过GitHub请求支持。他们有一个这样的工作的例子,以及一个例子,说明它将在他们将要做的新提交之后如何工作。我正在使用前者,它工作正常。看起来您可以获得最新的来源或等待另一个发布/里程碑。
Here是讨论的链接。
这是我的解决方案,但它的工作正如他们在答案中所说的那样。我没有提取他们的提交,所以我使用基础Jetty API的第一个解决方案。使用Jetty 8和Spring Boot进行此示例,但Jetty 9也可以使用。
@Bean
public EmbeddedServletContainerFactory embeddedServletContainerFactory() throws Exception {
return new JettyEmbeddedServletContainerFactory() {
@Override
protected JettyEmbeddedServletContainer getJettyEmbeddedServletContainer(
Server server) {
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStorePath("/usr/local/keystore");
sslContextFactory.setKeyStorePassword("password");
sslContextFactory.setCertAlias("alias");
SslSocketConnector sslConnector = new SslSocketConnector(sslContextFactory);
sslConnector.setPort(8443);
server.setConnectors(new Connector[] { sslConnector });
return super.getJettyEmbeddedServletContainer(server);
}
};
}
答案 1 :(得分:0)
您使用maven作为构建系统吗?如果是这样,您可以检查此pom.xml工件 - http://bghints.blogspot.com/2012/03/client-authentication-with-ssl_28.html
博客文章是针对码头6.对于码头9,有一个区别。组ID必须更改为:
org.mortbay.jetty
到
org.eclipse.jetty
我希望这会对你有所帮助。