В настоящее время мы находимся в процессе изменения порта на одном из наших серверов, но клиенты не могут быть ограничены в работе в реальном времени. Ранее использовался порт 8443, который позволял клиентам подключаться к серверу. Новый должен быть 443. Итак, я начал настраивать Tomcat в Spring для поддержки нескольких портов.
@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 запущен на порту ( s): 443 (https) 8443 (https) с контекстным путем ''
, но работает только порт 443. Я предполагаю, что только 443 использует трапецеидальный камень. Как я могу добиться того, чтобы порт 8443 также использовал то же хранилище ключей?