Spring Boot - 创建HTTPS连接不起作用

时间:2016-09-21 09:06:00

标签: java web-applications https spring-boot

我使用 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

您是否有想法以这种方式获得安全通信?

1 个答案:

答案 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);