Falha ao carregar a IU da Web do servidor de apresentação do PowerFlex

Summary: A interface do usuário da Web do Presentation Server não é carregada devido a várias extensões de Nome Alternativo do Assunto (SAN) presentes no certificado.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Versões afetadas

  • PowerFlex 3.5.x
  • PowerFlex 3.6.0.x

O serviço do servidor de apresentação é iniciado, mas a página da Web falha ao carregar a tela de log-in 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)


O servidor de apresentação /opt/emc/scaleio/mgmt-server/logs/scaleio.log mostra os seguintes erros:

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)


Execute o seguinte comando para verificar se o servidor de apresentação usa várias entradas san. Isso pode ser executado no certificado que o cliente está renovando ou substituindo que tem várias entradas de extensão 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

O servidor de apresentação, também conhecido como servidor de gerenciamento, não tem suporte para lidar com várias entradas de extensão san (Subject Alternative Name, nome alternativo do assunto). Esse problema pode surgir quando os certificados do servidor de gerenciamento, com várias entradas de extensão de SAN, são renovados ou substituídos na versão afetada.
 

Impacto
O não carregamento da IU da Web para o servidor de gerenciamento resulta na incapacidade de gerenciar o cluster do PowerFlex por meio da interface do usuário (UI). Isso dificulta o gerenciamento do sistema PowerFlex. 

 

Causa raiz
O problema ocorre quando a estrutura do Jetty, a org.eclipse.jetty.util.ssl.SslContextFactory tenta processar vários certificados em um KeyStore. Essa é uma operação que não foi projetada para lidar.
A versão afetada do servidor de apresentação não está equipada para gerenciar certificados que contêm mais de uma entrada de extensão DE SAN (Subject Alternative Name, nome alternativo do assunto).
Isso leva a uma falha quando encontra esses certificados. 

Resolution

    Esse comportamento é corrigido no PowerFlex 3.6.1 e versões posteriores.


    Solução temporária

    1. Use um certificado que contenha uma única entrada de extensão san (Subject Alternative Name, nome alternativo do assunto). Isso se alinha às limitações atuais do servidor de gerenciamento. Isso deve permitir a operação normal.
    2. Faça upgrade do servidor de gerenciamento para a versão 3.6.1. Essa versão inclui suporte aprimorado para várias entradas de extensão san e não é necessário ajustar os certificados.
    Article Properties
    Article Number: 000215758
    Article Type: Solution
    Last Modified: 14 Sep 2023
    Version:  4
    Find answers to your questions from other Dell users
    Support Services
    Check if your device is covered by Support Services.