Řešení známých problémů

Last modified by Jan Šimeček on 2024/08/02 11:33

Nefungují výstupy (tisk kartiček)

Pokud je Tritius provozován u zákazníka a používá certifikační autoritu letsencrypt můžou v úložišti certifikátů Javy chybět záznamy pro tuto certifikačníé autoritu.

Letsencrypt je poměrně mladá certifikační autorita a ve starších verzích Javy (kromě těch nejnovějších) ještě není zanesena.

Pro ověření lze provést tento příkaz:

keytool -list -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -alias letsencryptauthorityx1

V nových verzích šablony VM (od verze 1.16) je již tato certifikační autorita zanesena defaultně a něměly by tedy nastávat žádné problémy. Starší verze šablony lze buď upgradovat nebo použít script:

#!/bin/sh

# Check if JAVA_HOME is set
if [ "$JAVA_HOME" = "" ]
then
    echo "ERROR: JAVA_HOME must be set."
    exit 1
fi

# Check if cacerts file is present
if [ ! -f $JAVA_HOME/jre/lib/security/cacerts ]
then
    echo "ERROR: \$JAVA_HOME/jre/lib/security/cacerts not found. JAVA_HOME set correctly?"
    exit 1
fi

# Download the letsencrypt certs
echo "Downloading certs..."
wget --quiet --continue https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.der
wget --quiet --continue https://letsencrypt.org/certs/lets-encrypt-x4-cross-signed.der
wget --quiet --continue https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.der
wget --quiet --continue https://letsencrypt.org/certs/letsencryptauthorityx1.der
wget --quiet --continue https://letsencrypt.org/certs/lets-encrypt-x2-cross-signed.der
wget --quiet --continue https://letsencrypt.org/certs/letsencryptauthorityx2.der

# Install certs into global keystore
echo "Adding certs to cacerts keystore (sudo password required)..."
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias letsencryptx3 -file lets-encrypt-x3-cross-signed.der
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias letsencryptx4 -file lets-encrypt-x4-cross-signed.der
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias letsencryptx1 -file lets-encrypt-x1-cross-signed.der
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias letsencryptauthorityx1 -file letsencryptauthorityx1.der
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias letsencryptx2 -file lets-encrypt-x2-cross-signed.der
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias letsenrcyptauthorityx2 -file letsencryptauthorityx2.der

# Remove downloaded certs
rm -f lets-encrypt-x3-cross-signed.der lets-encrypt-x4-cross-signed.der lets-encrypt-x1-cross-signed.der letsencryptauthorityx1.der  lets-encrypt-x2-cross-signed.der letsencryptauthorityx2.der