Input not an X.509 certificate - Java keytool
Při importu certifikátu do Javové klíčenky na nás může vyskočit nepříjemná chyba Input not an X.509 certificate. Jednou z příčin je, že máme certifikát v nesprávném formátu.
V tom případě provedeme převod z PEM do DER pomocí OpenSSL:
openssl x509 -in certifikát.pem -inform PEM -outform DER -out certifikát.der.
Výsledek pak už snadno pomocí keytoolu importujeme:
keytool -import -alias náš_alias -keystore klíčenka.jks -storepass naše_heslo -file certifikát.der.
Bonus na závěr: skript pro stažení SSL certifikátu ze serveru:
#!/bin/sh
REMHOST=$1
REMPORT=${2:-443}
echo |\
openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |\
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'Použití: ssl-stažení example.com [port]
Import klíče a certifikátu z PEM do JKS
-
Vytvoříme si P12 obsahující jak klíč, tak certifikát:
openssl pkcs12 -export -in certifikát.pem -inkey klíč.pem -out klíčCertifikát.p12
-
Změníme si alias na požadovanou hodnotu – např.:
keytool -storetype PKCS12 -keystore klíčCertifikát.p12 \ -changealias -alias 2 -destalias frantovo.cz_3
-
Zkontrolujeme si, zda je všechno v pořádku:
keytool -list -storetype PKCS12 -keystore klíčCertifikát.p12
-
Importujeme PKCS12 do JKS:
keytool -importkeystore -destkeystore keystore.jks \ -srckeystore klíčCertifikát.p12 -srcstoretype PKCS12
-
Podíváme se na výsledek:
keytool -list -keystore keystore.jks






PKCS12
Zabalení certifikátu a klíče do jednoho souboru:
openssl pkcs12 -export -in certifikát.pem -inkey klíč.pem -out klíčCertifikát.p12
Samopodepsaný certifikát
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout klíč.pem -out certifikát.pem
Klíč + CSR + Certifikát