Zertifikat über Keystore nutzen

  • Beitrags-Autor:
  • Beitrags-Kategorie:Java

Zertifikat umschreiben

github.com/escline/InstallCert oder CODE/InstallCert

# erstellt "jssecacerts"
java InstallCert.java localhost:8443
-Djavax.net.ssl.trustStore=C:/Projekt/jssecacerts

weiterlesen…

Zertifikat herunterladen und nutzen

echo |\
openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |\
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' \
> <PATH_TO_CERTIFICATE>/certificate.cer

weiterlesen…

keytool -keystore <PATH_TO_JRE>/lib/security/cacerts \
-import -alias certificate \
-file <PATH_TO_CERTIFICATE>/certificate.cer
// Path to your keystore where you registred the SSL certficate
String keystorePath = "<PATH_TO_JRE>/lib/security/cacerts";
System.setProperty("javax.net.ssl.keyStore", keystorePath);
// Password of your java keystore. Default value is : changeit
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
-Djavax.net.ssl.keyStore="<PATH_TO_JRE>/lib/security/cacerts"
-Djavax.net.ssl.keyStorePassword=changeit

weiterlesen… (inkl. LDAPS-Beispiel)

Zertifikatskette importieren

# Kette importieren
keytool -import -trustcacerts -keystore /home/xyz/config/xyz.jks \
-alias x1 -file /home/eva/config/x1.cer
 
keytool -import -trustcacerts -keystore /home/xyz/config/xyz.jks \
-alias r3 -file /home/eva/config/r3.cer
 
# Zertifikat global bereitstellen
keytool -import -trustcacerts \
-keystore /usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts \
-alias xyz -file /home/xyz/config/xyz.cer
 
# Zertifikate auflisten
keytool -list -v -storepass changeit \
-keystore /usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts
 
java -Djavax.net.debug=all -Djavax.net.ssl.trustStore=/home/xyz/config/xyz.jks \
-Djavax.net.ssl.trustStorePassword=$XYZ_JKS_PASS \
-cp "$XYZ_JARS" net.btmx.xyz.MainApp

PFX importieren (inkl. Kennwortänderung)

# Inhalt "abcd" auflisten
keytool.exe -list -v -keystore abcd.jks
# Alias "efg" aus "abcd" löschen
keytool -delete -alias efg -keystore abcd.jks
# Zertifikat/Schlüssel aus PFX importieren
keytool -importkeystore -srckeystore win.pfx -srcstoretype pkcs12 -destkeystore abcd.jks -deststoretype JKS
# Aliasname "1b0b9c" vom Import ermitteln
keytool -v -list -keystore abcd.jks
# Kennwort von Import ändern
keytool -keypasswd -keystore abcd.jks -storetype JKS -alias 1b0b9c
# Alias "1b0b9c" in "efg" ändern
keytool -changealias -alias 1b0b9c -keystore abcd.jks -destalias efg

siehe auch CRT und KEY aus PFX

Fehlermeldung: NoSuchAlgorithmException

Keytool-Fehler: java.io.IOException: Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available

Einfache Lösung war, das Java mit winget install Microsoft.OpenJDK.11 zu aktualisieren.

Tomcat-Zertifikat verlängern

Voraussetzung in /etc/ufw/before.rules sind beide Port konfiguriert (443 und 80), muss 80 fürs Zertifikatsverlängern nur geöffnet und anschließend wieder geschlossen werden.

# alles als ROOT ausführen
ufw allow 80/tcp
ufw allow 60708/tcp
certbot renew --webroot --webroot-path /home/tomcat/webapps/ROOT
openssl pkcs12 -export -out /tmp/abc.demo.de_fullchain_and_key.p12 -in /etc/letsencrypt/live/abc.demo.de/fullchain.pem -inkey /etc/letsencrypt/live/abc.demo.de/privkey.pem -name abc
chown admin:admin /tmp/abc.demo.de_fullchain_and_key.p12
cp /home/abc/config/abc.demo.de.jks /home/abc/config/abc.demo.de.jks_250406
keytool -delete -alias abc -keystore /home/ciforms/config/abc.demo.de.jks
source /home/abc/abc.vars && keytool -importkeystore -deststorepass $ABC_JKS_PASS -destkeypass $ABC_JKS_PASS -destkeystore /home/abc/config/abc.demo.de.jks -srckeystore /tmp/abc.demo.de_fullchain_and_key.p12 -srcstoretype PKCS12 -srcstorepass $ABC_JKS_PASS -alias abc
mv /home/cif/config/abc.demo.de.jks /home/cif/config/abc.demo.de.jks_250406
cp /home/abc/config/abc.demo.de.jks /home/cif/config/abc.demo.de.jks
systemctl stop abc.service
systemctl start abc.service
ufw status numbered
ufw delete xx

An Ende von unten nach oben 60708 und 80 wieder löschen.