Rozwiązanie znanych problemów

Ostatnio modyfikowane 2025/11/14 09:58 przez Jan Slezák

Nie działają wyjścia (drukowanie kart)

Jeśli Tritius jest używany u klienta i korzysta z certyfikatu letsencrypt, w magazynie certyfikatów Java mogą brakować wpisów dla tego certyfikatu.

Letsencrypt jest stosunkowo młodym urzędem certyfikacji i nie jest jeszcze uwzględniony w starszych wersjach Javy (z wyjątkiem najnowszych).

W celu weryfikacji można wykonać następujące polecenie:

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

W nowych wersjach szablonu VM (od wersji 1.16) ten certyfikat jest już domyślnie wprowadzony, więc nie powinno być żadnych problemów. Starsze wersje szablonu można zaktualizować lub użyć skryptu:

 
#!/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