Не загружается веб-интерфейс сервера презентаций PowerFlex
Summary: Веб-интерфейс сервера презентации не загружается из-за нескольких расширений «Альтернативное имя субъекта» (SAN), представленных в сертификате.
Symptoms
Затронутые версии
- PowerFlex 3.5.x
- PowerFlex 3.6.0.x
Запускается служба сервера презентаций, но на веб-странице не удается загрузить начальный экран входа.
[root@host1 .config]# systemctl status mgmt-server.service
● mgmt-server.service - Scaleio MGMT Server
Loaded: loaded (/etc/systemd/system/mgmt-server.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-1-09 05:30:03 EST; 11s ago
Main PID: 29700 (java)
CGroup: /system.slice/mgmt-server.service
└─29700 /bin/java -Xmx4g -Dlog4j2.formatMsgNoLookups=true -Djna.tmpdir=/opt/emc/scaleio/mgmt-server/tmp -Djava.io.tmpdir=/opt/emc/scaleio/mg...
Dec 09 05:30:08 host1 java[29700]: at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:320)
...
Dec 09 05:30:08 host1 java[29700]: at java.lang.Thread.run(Thread.java:750)
На сервере презентации /opt/emc/scaleio/mgmt-server/logs/scaleio.log отображаются следующие ошибки:
Suppressed: com.google.common.util.concurrent.ServiceManager$FailedService: HttpdService [FAILED]
Caused by: java.lang.IllegalStateException: KeyStores with multiple certificates are not supported on the base class org.eclipse.jetty.util.ssl.SslContextFactory. (Use org.eclipse.jetty.util.ssl.SslContextFactory$Server or org.eclipse.jetty.util.ssl.SslContextFactory$Client instead)
at org.eclipse.jetty.util.ssl.SslContextFactory.newSniX509ExtendedKeyManager(SslContextFactory.java:1288)
at org.eclipse.jetty.util.ssl.SslContextFactory.getKeyManagers(SslContextFactory.java:1270)
at org.eclipse.jetty.util.ssl.SslContextFactory.load(SslContextFactory.java:372)
at org.eclipse.jetty.util.ssl.SslContextFactory.doStart(SslContextFactory.java:243)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at org.eclipse.jetty.server.SslConnectionFactory.doStart(SslConnectionFactory.java:97)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:321)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at org.eclipse.jetty.server.Server.doStart(Server.java:401)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at com.emc.vxflexos.webui.backend.httpd.HttpdService.startUp(HttpdService.java:31)
at com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:62)
at com.google.common.util.concurrent.Callables$4.run(Callables.java:119)
at java.lang.Thread.run(Thread.java:750)
Выполните следующую команду, чтобы проверить, использует ли сервер презентаций несколько записей SAN. Это можно запустить для сертификата, который заказчик обновляет или заменяет с несколькими записями расширений SAN.
[root@host1 /]# openssl x509 -noout -text -in | grep -A1 -i 'Subject Alternative Name'
X509v3 Subject Alternative Name:
DNS:host1, DNS:host1.cn
Cause
Влияние
Невыгрузка веб-интерфейса для сервера управления приводит к невозможности управления кластером PowerFlex с помощью пользовательского интерфейса. Это усложняет управление системой PowerFlex.
Причину
Проблема возникает, когда платформа Jetty, base class org.org.jetty.util.ssl.SslContextFactory пытается обустроить несколько сертификатов в Хранилище ключей. Эта операция не предназначена для выполнения.
Затронутая версия сервера презентаций не оснащена для управления сертификатами, которые содержат более одной записи с альтернативным именем субъекта (SAN).
Это приводит к сбою при обнаружении таких сертификатов.
Resolution
Это исправлено в PowerFlex 3.6.1 и более поздних версиях.
Временное решение
- Используйте сертификат, содержащий одну запись расширения «Альтернативное имя субъекта» (SAN). Это согласуется с текущими ограничениями сервера управления. Он должен разрешать нормальную работу.
- Обновите mgmt-server до версии 3.6.1. Эта версия включает улучшенную поддержку нескольких записей расширения SAN и не требуется корректировать сертификаты.