La interfaz de usuario web del servidor de presentación de PowerFlex no se carga
Summary: La interfaz de usuario web del servidor de presentación no se carga debido a varias extensiones de nombre alternativo de sujeto (SAN) presentes en el certificado.
Symptoms
Versiones afectadas
- PowerFlex 3.5.x
- PowerFlex 3.6.0.x
Se inicia el servicio del servidor de presentación, pero la página web no puede cargar la pantalla de inicio de sesión inicial.
[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)
El servidor de presentación /opt/emc/scaleio/mgmt-server/logs/scaleio.log muestra los siguientes errores:
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)
Ejecute el siguiente comando para verificar si el servidor de presentación utiliza varias entradas de SAN. Esto se puede ejecutar en función del certificado que el cliente está renovando o reemplazando y que tiene varias entradas de extensión de SAN.
[root@host1 /]# openssl x509 -noout -text -in | grep -A1 -i 'Subject Alternative Name'
X509v3 Subject Alternative Name:
DNS:host1, DNS:host1.cn
Cause
Impacto
Si no se carga la interfaz de usuario web para el servidor de administración, no se puede administrar el clúster de PowerFlex a través de la interfaz de usuario (UI). Esto dificulta la administración del sistema PowerFlex.
Causa raíz
El problema se produce cuando la infraestructura Jetty, la clase base org.eclipse.jetty.util.ssl.SslContextFactory intenta procesar varios certificados en un KeyStore. Esta es una operación que no está diseñada para manejar.
La versión del servidor de presentación afectada no está equipada para administrar certificados que contengan más de una entrada de extensión de nombre alternativo de sujeto (SAN).
Esto genera una falla cuando encuentra dichos certificados.
Resolution
Este comportamiento se corrige en PowerFlex 3.6.1 y versiones posteriores.
Solución alternativa
- Utilice un certificado que contenga una sola entrada de extensión de nombre alternativo de sujeto (SAN). Esto se alinea con las limitaciones actuales del servidor de administración. Debe permitir el funcionamiento normal.
- Actualice mgmt-server a la versión 3.6.1. Esta versión incluye soporte mejorado para varias entradas de extensión de SAN y no es necesario ajustar los certificados.