Il existe de nombreuses ressources sur ce sujet, mais je n'en ai trouvé aucune qui couvre ce cas un peu spécial.
J'ai 4 fichiers;
Et je souhaite les importer dans un nouveau magasin de clés.
Certains sites suggèrent d'utiliser le format DER et de les importer un par un, mais cela a échoué car la clé n'est pas reconnue.
Un autre site a suggéré une classe spéciale "ImportKey" à exécuter pour l'importation, et cela a fonctionné jusqu'à ce que je vois que la chaîne est rompue. C'est à dire. la longueur de la chaîne sur le certificat est 1, en ignorant l'intermédiaire et ca.
Certains sites suggèrent PKCS7, mais je ne peux même pas obtenir de chaîne à partir de cela. D'autres suggèrent le format PKCS12, mais en ce qui concerne mes tests, cela a également échoué pour obtenir la chaîne entière.
Tous les conseils ou astuces sont les bienvenus.
Ce n'est peut-être pas parfait, mais j'avais quelques notes sur mon utilisation de keytool
que j'ai modifiées pour votre scénario.
Importez un certificat CA racine ou intermédiaire dans un magasin de clés Java:
keytool -import -trustcacerts -alias root -file ca_geotrust_global.pem -keystore yourkeystore.jks
keytool -import -trustcacerts -alias root -file intermediate_rapidssl.pem -keystore yourkeystore.jks
Combinez le certificat et la clé privée dans un fichier avant l'importation.
cat certificate.pem privatekey.pem > combined.pem
Cela devrait entraîner un fichier ressemblant au format ci-dessous.
COMMENCER LE CERTIFICAT
...
FIN DU CERTIFICAT
COMMENCER LA CLÉ PRIVÉE RSA
...
FIN DE LA CLÉ PRIVÉE RSA
Importez un certificat et une clé principaux signés dans un magasin de clés Java:
keytool -import -trustcacerts -alias yourdomain -file combined.pem -keystore yourkeystore.jks
Concatène tous les fichiers * .pem en un seul fichier pem, comme all.pem Puis crée un magasin de clés au format p12 avec clé privée + all.pem
openssl pkcs12 -export -inkey private.key -in all.pem -name test -out test.p12
Puis exportez p12 en jks
keytool -importkeystore -srckeystore test.p12 -srcstoretype pkcs12 -destkeystore test.jks
keytool ne fournit pas un moyen d'importer le certificat + la clé privée à partir d'un seul fichier (combiné), comme proposé ci-dessus. Il fonctionne correctement, mais seul le certificat est importé, tandis que la clé privée est ignorée. Vous pouvez le vérifier par keytool -list -v -keystore yourkeystore.jks
- le type d'entrée de votre domaine est TrustedCertEntry, pas PrivateKeyEntry.
Donc, pour résoudre le problème initial, il faut d'abord créer un magasin de clés PKCS # 12 en utilisant openssl (ou un outil similaire), puis importer le magasin de clés avec keytool -importkeystore
.