PowerFlex 3.X: Nie można załadować internetowego interfejsu użytkownika serwera prezentacji
摘要: Nie można załadować internetowego interfejsu użytkownika serwera prezentacji z powodu wielu rozszerzeń alternatywnych nazw podmiotów (SAN) obecnych w certyfikacie.
症状
Usługa serwera prezentacji uruchamia się, ale strona internetowa nie ładuje początkowego ekranu logowania.
[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)
Dziennik serwera prezentacji zawiera następujące błędy:
/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)
Uruchom następujące polecenie, aby sprawdzić, czy serwer prezentacji używa wielu wpisów sieci SAN. Można to uruchomić dla certyfikatu, który klient odnawia lub zastępuje, a który ma wiele wpisów rozszerzenia sieci SAN.
[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.
Wpływ
Niezaładowanie sieciowego interfejsu użytkownika serwera mgmt uniemożliwia zarządzanie klastrem PowerFlex za pośrednictwem interfejsu użytkownika (UI). Obniża to łatwość zarządzania i obsługi systemu PowerFlex.
原因
Problem występuje, gdy struktura Jetty, w szczególności klasa bazowa org.eclipse.jetty.util.ssl.SslContextFactory próbuje przetworzyć wiele certyfikatów w magazynie kluczy, operacji, do której nie jest przeznaczony do obsługi. Zasadniczo wersja serwera prezentacji, której dotyczy problem, nie jest przystosowana do zarządzania certyfikatami zawierającymi więcej niż jeden wpis rozszerzenia alternatywnej nazwy podmiotu (SAN), co prowadzi do niepowodzenia w przypadku napotkania takich certyfikatów.
解决方案
- Korzystaj z certyfikatu, który zawiera tylko jeden wpis rozszerzenia nazwy alternatywnej podmiotu (SAN). Jest to zgodne z obecnymi ograniczeniami serwera zarządzającego i powinno umożliwić normalne działanie.
- Uaktualnij serwer zarządzania do wersji 3.6.1. Ta wersja zawiera ulepszoną obsługę wielu wpisów rozszerzeń SAN, co eliminuje konieczność dostosowywania certyfikatów.
Wersje, których dotyczy problem
PowerFlex 3.5.x
PowerFlex 3.6.0.x
Naprawiono w wersji
PowerFlex 3.6.1