Die Webbenutzeroberfläche des PowerFlex-Präsentationsservers kann nicht geladen werden
Summary: Die Webbenutzeroberfläche des Präsentationsservers kann nicht geladen werden, weil mehrere SAN-Erweiterungen (Subject Alternative Name) im Zertifikat vorhanden sind.
Symptoms
Betroffene Versionen
- PowerFlex 3.5.x
- PowerFlex 3.6.0.x
Der Präsentationsserverservice wird gestartet, aber die Webseite kann den ersten Anmeldebildschirm nicht laden.
[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)
Der Präsentationsserver /opt/emc/scaleio/mgmt-server/logs/scaleio.log zeigt die folgenden Fehler an:
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)
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Präsentationsserver mehrere SAN-Einträge verwendet. Dies kann für das Zertifikat ausgeführt werden, das der Kunde erneuert oder ersetzt, das über mehrere SAN-Erweiterungseinträge verfügt.
[root@host1 /]# openssl x509 -noout -text -in | grep -A1 -i 'Subject Alternative Name'
X509v3 Subject Alternative Name:
DNS:host1, DNS:host1.cn
Cause
Auswirkungen
Wenn die Webbenutzeroberfläche für den Mgmt-Server nicht geladen wird, kann das PowerFlex-Cluster nicht über die Benutzeroberfläche (UI) verwaltet werden. Dies erschwert das Management des PowerFlex-Systems.
Ursache
Das Problem tritt auf, wenn das Jetty-Framework, die Basisklasse org.eclipse.jetty.util.ssl.SslContextFactor, versucht, mehrere Zertifikate in einem KeyStore zu verarbeiten. Dies ist ein Vorgang, für den er nicht ausgelegt ist.
Die betroffene Version des Präsentationsservers ist nicht für die Verwaltung von Zertifikaten ausgestattet, die mehr als einen SAN-Erweiterungseintrag (Subject Alternative Name) enthalten.
Dies führt zu einem Fehler, wenn solche Zertifikate auftreten.
Resolution
Dieses Verhalten ist in PowerFlex 3.6.1 und höher behoben.
Problemumgehung
- Verwenden Sie ein Zertifikat, das einen einzigen San-Erweiterungseintrag (Subject Alternative Name) enthält. Dies entspricht den aktuellen Einschränkungen des Managementservers. Es sollte einen normalen Betrieb ermöglichen.
- Führen Sie ein Upgrade des Mgmt-Servers auf Version 3.6.1 durch. Diese Version bietet verbesserte Unterstützung für mehrere SAN-Erweiterungseinträge und es ist nicht erforderlich, die Zertifikate anzupassen.