# Java Keystore import

Sajnos egy meglevő privát kulcsot és tanúsítványt nem lehet olyan könnyen (keytool segítségével) Java Keystore-ba importálni. A művelet folyamata a [Shibboleth Wikiben található leírás alapján](https://spaces.internet2.edu/display/SHIB/SPPKIConfig):

* PKCS8 struktúra készítése, amely tartalmazza a privát kulcsot

		openssl pkcs8 -topk8 -in be.aai.niif.hu.key -nocrypt -outform DER -out be.aai.niif.hu.pkcs8

* El kell készíteni a tanúsítványhoz tartozó tanúsítvány láncot

		cat ca-cert.pem be.aai.niif.hu.crt >cert-bundle.pem

* Létre kell hozni egy keystore-t. Ezt egy fake kulcs és tanúsítvány létrehozásával csináljuk.

		/usr/java/latest/bin/keytool -genkey -keyalg RSA -alias "selfsigned" -keystore myKeystore.jks -validity 360 -storepass "secret"

* Töröljük a fake kulcsot, marad az üres keystore

		/usr/java/latest/bin/keytool -delete -alias "selfsigned" -keystore myKeystore.jks -storepass "secret"

* A Shibboleth IdP **extkeytool** nevű eszközével betöltjük a pkcs8-ban levő kulcsot és a tanúsítványokat az üres keystore-ba. Ehhez persze be kell állítani az `IDP_HOME` változót.

		export IDP_HOME=/usr/local/shibboleth-idp
		/usr/local/shibboleth-idp/bin/extkeytool -importkey -keystore myKeystore.jks -alias be -storepass secret \
		-keyfile be.aai.niif.hu.pkcs8 -certfile cert-bundle.pem -provider org.bouncycastle.jce.provider.BouncyCastleProvider

* Ha minden jól ment, akkor láthatjuk, hogy ott virít a kulcsunk a keystore-ban:

		[~](bajnokk@dev)$ /usr/java/latest/bin/keytool -list -keystore myKeystore.jks
		Enter keystore password:

		Keystore type: JKS
		Keystore provider: SUN

		Your keystore contains 1 entry

		be, Aug 31, 2007, PrivateKeyEntry,
		Certificate fingerprint (MD5): 2B:D6:14:00:44:D7:9C:B8:F9:DC:52:CD:3D:E1:3F:FB