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); } } }; } }