【发布时间】:2019-01-28 23:28:24
【问题描述】:
其实这不是问题,而是我想了解的奇怪的事情。我使用带有嵌入式 Tomcat 的 SpringBoot2。而且我添加了自签名 SSL 证书。这是很常见的配置:
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=123456
server.ssl.key-alias=tomcat
server.port=8443
我做了一个连接器,强制 http -> https 重定向,就像在许多例子中一样:
private Connector getHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}
如果我不在我的配置中指定 server.port 属性,我将看到以下错误:
说明:
配置为侦听端口 8080 的 Tomcat 连接器失败 开始。端口可能已在使用中,或者连接器可能已使用 配置错误。
行动:
验证连接器的配置,识别并停止任何进程 正在侦听端口 8080,或配置此应用程序以侦听 在另一个端口上。
但如果我愿意,我会看到以下内容:
o.s.b.w.embedded.tomcat.TomcatWebServer :Tomcat 在端口上启动: 8443 (https) 8080 (http) 带有上下文路径 ''
为什么 server.port 开始指向 https 端口???甚至 springframework.boot.autoconfigure.web.ServerProperties 的来源都说它是
/**
* Server HTTP port.
*/
没关系,或者我的服务器中有一些奇怪的东西?或者这就是 Conectors 的工作方式? :) 谢谢
【问题讨论】:
标签: spring spring-boot tomcat ssl https