PowerFlex 3.X: Esityspalvelimen verkkokäyttöliittymä ei lataudu
摘要: Esityspalvelimen verkkokäyttöliittymä ei lataudu, koska varmenteessa on useita SAN (Subject Alternative Name) -laajennuksia.
症状
Esityspalvelinpalvelu käynnistyy, mutta verkkosivu ei lataa ensimmäistä kirjautumisnäyttöä.
[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)
Esityspalvelimen lokissa näkyvät seuraavat virheet:
/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)
Tarkista seuraavalla komennolla, käyttääkö esityspalvelin useita SAN-merkintöjä. Tämä voidaan suorittaa asiakkaan uusimalle tai korvaamalle varmenteelle, jolla on useita SAN-laajennusmerkintöjä.
[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.
Vaikutus
Jos mgmt-palvelimen verkkokäyttöliittymää ei ladata, PowerFlex-klusteria ei voi hallita käyttöliittymän kautta. Tämä heikentää PowerFlex-järjestelmän hallinnan ja käytön helppoutta.
原因
Ongelma ilmenee, kun Jetty-kehys, erityisesti perusluokka org.eclipse.jetty.util.ssl.SslContextFactory yrittää käsitellä useita varmenteita KeyStoressa, mitä toimintoa ei ole suunniteltu käsittelemään. Pohjimmiltaan esityspalvelimen versiota, johon ongelma vaikuttaa, ei ole varustettu hallitsemaan varmenteita, jotka sisältävät useamman kuin yhden SAN (Subject Alternative Name) -laajennusmerkinnän, mikä johtaa epäonnistumiseen, kun se havaitsee tällaisia varmenteita.
解决方案
- Käytä varmennetta, joka sisältää vain yhden SAN (Subject Alternative Name) -laajennusmerkinnän. Tämä vastaa mgmt-serverin nykyisiä rajoituksia ja mahdollistaa normaalin toiminnan.
- Päivitä mgmt-server versioon 3.6.1. Tämä versio sisältää parannetun tuen useille SAN-laajennusmerkinnöille, mikä vähentää tarvetta muuttaa varmenteita.
Versiot, joita ongelma koskee
PowerFlex 3.5.x
PowerFlex 3.6.0.x
Korjattu versiossa
PowerFlex 3.6.1