如何设置Spring Boot运行HTTPS / HTTP端口

Spring Boot" title="Spring Boot">Spring Boot具有一些用于配置Web端口和SSL设置的属性,但是一旦设置了SSL证书,http端口就会变成https端口。

因此,如何使两个端口都在其上运行,例如:同时80和443?

如您所见,只有一个端口的属性,在这种情况下启用了“ server.ssl”,这使得http端口自动被禁用。

##############

### Server ###

##############

server.port=9043

server.session-timeout=1800

server.ssl.key-store=file:///C:/Temp/config/localhost.jks

server.ssl.key-store-password=localhost

server.ssl.key-password=localhost

server.ssl.trust-store=file:///C:/Temp/config/localhost.jks

server.ssl.trust-store-password=localhost

我正在尝试甚至使用Tomcat或Undertow。我将不胜感激!

回答:

使用属性进行Spring Boot配置,仅允许配置一个连接器。您需要多个连接器,为此,您必须编写一个Configuration类。遵循中的指示

https://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/html/howto-

embedded-servlet-containers.html

您可以在下面找到通过属性配置https的有效示例,然后通过EmbeddedServletContainerCustomizer通过http进行配置

http://izeye.blogspot.com/2015/01/configure-http-and-https-in-spring-

boot.html?showComment=1461632100718#c4988529876932015554554

server:

port:

8080

ssl:

enabled:

true

keyStoreType:

PKCS12

key-store:

/path/to/keystore.p12

key-store-password:

password

http:

port:

8079


@Configuration

public class TomcatConfig {

@Value("${server.http.port}")

private int httpPort;

@Bean

public EmbeddedServletContainerCustomizer containerCustomizer() {

return new EmbeddedServletContainerCustomizer() {

@Override

public void customize(ConfigurableEmbeddedServletContainer container) {

if (container instanceof TomcatEmbeddedServletContainerFactory) {

TomcatEmbeddedServletContainerFactory containerFactory =

(TomcatEmbeddedServletContainerFactory) container;

Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL);

connector.setPort(httpPort);

containerFactory.addAdditionalTomcatConnectors(connector);

}

}

};

}

}

以上是 如何设置Spring Boot运行HTTPS / HTTP端口 的全部内容, 来源链接: utcz.com/qa/415083.html

回到顶部