Impossibile caricare l'interfaccia utente web del server di presentazione PowerFlex
Summary: L'interfaccia utente web di Presentation Server non si carica a causa di più estensioni SAN (Subject Alternative Name) presenti nel certificato.
Symptoms
Versioni interessate
- PowerFlex 3.5.x
- PowerFlex 3.6.0.x
Viene avviato il servizio del server delle presentazioni, ma la pagina web non carica la schermata di accesso iniziale.
[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)
Il server di presentazione /opt/emc/scaleio/mgmt-server/logs/scaleio.log mostra i seguenti errori:
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)
Eseguire il comando seguente per verificare se il server delle presentazioni utilizza più voci SAN. Questa operazione può essere eseguita a fronte del certificato che il cliente sta rinnovando o sostituendo con più voci di estensione SAN.
[root@host1 /]# openssl x509 -noout -text -in | grep -A1 -i 'Subject Alternative Name'
X509v3 Subject Alternative Name:
DNS:host1, DNS:host1.cn
Cause
Impatto
Il mancato caricamento dell'interfaccia utente web per il server di gestione comporta l'impossibilità di gestire il cluster PowerFlex tramite l'interfaccia utente. Ciò rende difficile la gestione del sistema PowerFlex.
Root cause
Il problema si verifica quando il framework Jetty, la classe base org.eclipse.jetty.util.ssl.SslContextContext tenta di elaborare più certificati in un KeyStore. Si tratta di un'operazione che non è progettata per essere gestita.
La versione del server delle presentazioni interessata non è in grado di gestire i certificati che contengono più di una voce di estensione Subject Alternative Name (SAN).
In questo modo si verifica un errore quando rileva tali certificati.
Resolution
Questo comportamento è stato risolto in PowerFlex 3.6.1 e versioni successive.
Soluzione alternativa
- Utilizzare un certificato che contiene una singola voce di estensione Subject Alternative Name (SAN). In questo modo si allinea alle limitazioni correnti del server di gestione. Dovrebbe consentire il normale funzionamento.
- Aggiornare il server di gestione alla versione 3.6.1. Questa versione include il supporto migliorato per più voci di estensione SAN e non è necessario regolare i certificati.