Веб-інтерфейс сервера презентацій 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
Вплив
Неможливість завантажити веб-інтерфейс користувача для mgmt-сервера призводить до неможливості управління кластером PowerFlex через інтерфейс користувача (UI). Це ускладнює управління системою PowerFlex.
Першопричина
Проблема виникає, коли фреймворк Jetty, базовий клас org.eclipse.jetty.util.ssl.SslContextFactory, намагається обробити кілька сертифікатів у сховищі ключів. Це операція, з якою вона не призначена для обробки.
Версія сервера презентацій, якої це стосується, не обладнана для керування сертифікатами, які містять кілька записів розширення альтернативного імені суб'єкта (SAN).
Це призводить до збою, коли він стикається з такими сертифікатами.
Resolution
Цю поведінку виправлено в PowerFlex 3.6.1 і пізніших версіях.
Спосіб вирішення
- Використовуйте сертифікат, який містить один запис розширення Subject Alternative Name (SAN). Це узгоджується з поточними обмеженнями mgmt-сервера. Вона повинна забезпечувати нормальну роботу.
- Оновіть mgmt-сервер до версії 3.6.1. Ця версія включає покращену підтримку декількох записів розширення SAN, і немає необхідності коригувати сертифікати.