PowerFlex 3.X: Die Web-UI des Präsentationsservers kann nicht geladen werden
Summary: Die Web-UI des Präsentationsservers kann aufgrund mehrerer SAN-Erweiterungen (Subject Alternative Name) nicht geladen werden, die im Zertifikat vorhanden sind.
Symptoms
Der Präsentationsserver-Service 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)
Das Präsentationsserver-Protokoll zeigt die folgenden Fehler an:
/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)
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 und das mehrere SAN-Erweiterungseinträge enthält.
[root@host1 /]# openssl x509 -noout -text -in <location_of_new_signed_cert> | grep -A1 -i 'Subject Alternative Name'
X509v3 Subject Alternative Name:
DNS:host1, DNS:host1.
Auswirkungen
Wenn die Webnutzeroberfläche für den Managementserver nicht geladen werden kann, kann der PowerFlex-Cluster nicht über die Benutzeroberfläche (UI) gemanagt werden. Dies beeinträchtigt die Einfachheit des Managements und des Betriebs des PowerFlex-Systems.
Cause
Das Problem tritt auf, wenn das Jetty-Framework, insbesondere die Basisklasse, org.eclipse.jetty.util.ssl.SslContextFactory Versucht, mehrere Zertifikate in einem KeyStore zu verarbeiten, ein Vorgang, für den er nicht ausgelegt ist. Im Wesentlichen ist die betroffene Präsentationsserverversion nicht in der Lage, Zertifikate zu verwalten, die mehr als einen SAN-Erweiterungseintrag (Subject Alternative Name) enthalten, was zu einem Fehler führt, wenn sie auf solche Zertifikate trifft.
Resolution
- Verwenden Sie ein Zertifikat, das nur einen einzigen Eintrag für die SAN-Erweiterung (Subject Alternative Name) enthält. Dies entspricht den aktuellen Einschränkungen des Managementservers und sollte einen normalen Betrieb ermöglichen.
- Aktualisieren Sie den mgmt-server auf Version 3.6.1. Diese Version bietet eine verbesserte Unterstützung für mehrere SAN-Erweiterungseinträge, sodass Sie Ihre Zertifikate nicht mehr anpassen müssen.
Betroffene Versionen
PowerFlex 3.5.x
PowerFlex 3.6.0.x
Behoben in Version
PowerFlex 3.6.1