我有一个使用http和https协议的SpringBoot 2.0应用程序。因此,它在端口9080上提供http协议,在端口9443上提供https协议,这很好地工作着。我唯一想要的是,如果用户输入例如:http://localhost:9443/e1,则进行重定向。
总结如下: http://localhost:9080/e1 >> 按预期工作。 https://localhost:9443/e1 >> 按预期工作。 http://localhost:9443/e1 >> 引发错误
总结如下: http://localhost:9080/e1 >> 按预期工作。 https://localhost:9443/e1 >> 按预期工作。 http://localhost:9443/e1 >> 引发错误
Bad Request. This combination of host and port requires TLS.
,但应该被重定向到https://localhost:9443/e1。@SpringBootApplication
@EnableScheduling
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
/* HTTP(S) configuration */
@Value("${http.port}")
private int httpPort;
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
private Connector createStandardConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(httpPort);
return connector;
}
}
我的application.properties文件如下:
server.port=9443
http.port=9080
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=my_passowrd
server.ssl.key-alias=my_alias
也许有人有解决这个问题的想法。谢谢,祝你有美好的一天 :-)