【发布时间】:2020-09-15 17:58:00
【问题描述】:
我们目前正在更改我们其中一台服务器上的端口,但客户端在实时操作中可能不受限制。 以前使用的端口是 8443,它允许客户端访问服务器。 新的应该是 443。 所以我开始在 Spring 中配置 Tomcat 以支持多个端口。
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
Connector[] additionalConnectors = this.additionalConnector();
if (additionalConnectors != null && additionalConnectors.length > 0) {
tomcat.addAdditionalTomcatConnectors(additionalConnectors);
}
return tomcat;
}
private Connector[] additionalConnector() {
if (StringUtils.isBlank(this.additionalPorts) || this.additionalPorts.equalsIgnoreCase("none")) {
return null;
}
String[] ports = this.additionalPorts.split(",");
List<Connector> result = new ArrayList<>();
for (String port : ports) {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("https");
connector.setPort(Integer.valueOf(port));
connector.setSecure(true);
result.add(connector);
}
return result.toArray(new Connector[] {});
}
application.properties:
server.port=443
server.additionalPorts=8443
security.require-ssl=true
server.ssl.key-store=/var/back/keystore.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=tomcat
server.ssl.key-store-password=<pw hidden>
现在的问题是服务器开始正确监听两个端口:
Tomcat 在端口上启动:443 (https) 8443 (https) 和上下文路径 ''
但只有 443 端口在工作。我猜只有 443 使用了梯形失真。如何实现端口 8443 也使用相同的密钥库?
【问题讨论】:
-
不,您的链接是关于使用密钥库添加多个不在 HTTPS 上运行的端口。 (相同的基本代码不同的问题)