scrapes / ILO2-Standalone-Remote-Console

ILO2 Remote Console as Standalone version
49 stars 16 forks source link

Existing data.cook file prevents startup with bad_record_mac error #11

Open ppar opened 2 years ago

ppar commented 2 years ago

If you have an existing data.cook file from a previous run, starting the console (./gradlew run) fails with a bad_record_mac message.

BTW, thank you for making this project available! It's been an absolute life-saver.

Steps to reproduce:

(FWIW, I'm seeing similar behaviour in Firefox with the iLO2 web UI: even though I have security.tls.insecure_fallback_hosts set to the iLO's hostname in about:config to work around the old TLS issue, and connecting initially works fine, after a while FF refuses to talk to iLO and shows the SSL_ERROR_BAD_MAC_ALERT error; restarting Firefox works around it. Not sure if relevant to the Java SSL libs.)

Environment:

$ java -version
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2deb10u1, mixed mode, sharing)

$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Jun  8 18:54 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java

$ dpkg -S /usr/lib/jvm/java-11-openjdk-amd64/bin/java
openjdk-11-jre-headless:amd64: /usr/lib/jvm/java-11-openjdk-amd64/bin/java

$ apt-cache policy openjdk-11-jre-headless:amd64
openjdk-11-jre-headless:
  Installed: 11.0.12+7-2~deb10u1
$ git log | head -6
commit 9f7e72c25bedfaf2f19b4198b5d9145edc825560
Author: fridtjof <fridtjof@das-labor.org>
Date:   Wed Jun 30 21:36:59 2021 +0200

    gradle: upgrade to 7.1
$ cat config.properties
# copy this file to config.properties and change the values accordingly

hostname = 10.x.y.x
username = Administrator
password = .....
$ ./gradlew run

> Task :run
Found datastore
javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133)
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:336)
        at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:293)
        at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:185)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1426)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1336)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:450)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:421)
        at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:572)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1592)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
        at Main.isValid(Main.java:220)
        at Main.main(Main.java:292)
javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133)
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:336)
        at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:293)
        at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:185)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1426)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1336)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:450)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:421)
        at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:572)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1592)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
        at Main.Stage3(Main.java:167)
        at Main.main(Main.java:306)

BUILD SUCCESSFUL in 3s
2 actionable tasks: 1 executed, 1 up-to-date
fridtjof commented 2 years ago

Hi! Thanks for the excellent bug report, really appreciate it :)

First things first, can you upgrade your iLO firmware to 2.33? I've never encountered this bug before, and all my iLOs are updated to that version. The changelog from 2.25 until then does not have anything obvious, but you never know :)