我使用 Spring Boot Framework 开发了一个包含嵌入式 Tomcat 的Web应用程序。需要为多个端口获得一些https连接。
为此,我使用 SpringApplicationBuilder ,如下所示:
SpringApplicationBuilder parentBuilder
= new SpringApplicationBuilder(ApplicationConfiguration.class);
parentBuilder.child(WithoutClientAuth.class)
.properties("server.port:8443")
.properties("security.require_ssl=true")
.properties("ssl.key-store=server.jks")
.properties("ssl.key-store-password=password")
.properties("ssl.key-password=password")
.run(args);
parentBuilder.child(WithClientAuth.class)
.properties("server.port:9443")
.properties("security.require_ssl=true")
.properties("ssl.key-store=server.jks")
.properties("ssl.key-store-password=password")
.properties("ssl.key-password=password")
.run(args);
但是,在启动应用程序后,通信协议并不安全。能够在输出中看到:
TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 9443 (http)
StandardService : Starting service Tomcat
StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.4
您是否有想法以这种方式获得安全通信?
答案 0 :(得分:1)
您用于SSL配置的属性是错误的。它们都应以server.
:
parentBuilder.child(WithoutClientAuth.class)
.properties("server.port:8443")
.properties("security.require_ssl=true")
.properties("server.ssl.key-store=server.jks")
.properties("server.ssl.key-store-password=password")
.properties("server.ssl.key-password=password")
.run(args);