ILO2-Standalone-Remote-Console
ILO2-Standalone-Remote-Console copied to clipboard
Existing data.cook file prevents startup with bad_record_mac error
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:
- Create a config.properties file
- Connect using
./gradlew run
- -> Remote console works as expected
- Disconnect
- Connect again, against the same server, config.properties unchanged
- -> Startup crashes
- Remove
data.cook
- Connect again
- -> Remote console works as expected
(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:
- System: HP ProLiant ML350 G6
- iLO version: 2.25 04/14/2014
$ 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 <[email protected]>
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
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 :)