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

摘要: 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.

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

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

 

原因

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. 

解决方案

    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.
    文章属性
    文章编号: 000215758
    文章类型: Solution
    上次修改时间: 10 12月 2025
    版本:  5
    从其他戴尔用户那里查找问题的答案
    支持服务
    检查您的设备是否在支持服务涵盖的范围内。