如何设置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
@Configurationpublic 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