A more complete, user-friendly troubleshooting document is TODO.
Drasl will log the bodies of HTTP requests to stdout if the DRASL_DEBUG
environment variable is set:
export DRASL_DEBUG=1
drasl
mitmproxy is a powerful debugging tool. Using it to intercept HTTPS requests from Java requires a little extra work since Java keeps its own store of trusted CA root certificates, and you'll need to tell Java to trust the mitmproxy CA certificate.
These instructions assume familiarity with the command line and are written for Linux. Other platforms may require different commands, but the general procedure will be the same.
- Run
mitmproxy
:
mitmproxy
- Make a copy of the Java cacert keystore somewhere you can modify it:
cp "$(dirname "$(readlink -f "$(which java)")")/../lib/security/cacerts" ~/cacerts
# The above command might expand to something like:
cp /usr/lib/jvm/java-21-openjdk-21.0.4.0.7-2.fc40.x86_64/lib/security/cacerts ~/cacerts
- Make sure your keystore is writeable:
chmod +w ~/cacerts
- Add the mitmproxy CA certificate to your keystore using
keytool
:
keytool -import -trustcacerts -noprompt -file ~/.mitmproxy/mitmproxy-ca-cert.pem -alias mitmproxy -keystore ~/cacerts
- Configure the Minecraft client to use mitmproxy and your customized keystore. In Fjord Launcher or Prism Launcher, you can go to Edit Instance → Settings → Java arguments and add the following. Note that
/home/CHANGEME/cacerts
should be replaced with the path to your copy of the keystore, butchangeit
is the default password for the keystore used by Java and should be included verbatim.
-Djavax.net.ssl.trustStore=/home/CHANGEME/cacerts -Djavax.net.ssl.trustStorePassword=changeit -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8080 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=8080