Comment convertir le certificat de confiance .jks .pem?

J'ai un Java serveur SSL pour laquelle je veux que mon Java client SSL et C++ client SSL pour être en mesure de se connecter. La Java client se connecte sans problèmes. Maintenant, je veux vous avoir mes C++ client SSL pour être en mesure de se connecter. Donc pour cela ,j'ai imaginé que je veux exporter le serverpub.jks .fichier pem, de sorte que mon C++ client peut charger dans son ssl contexte. Mais ce n'est pas de travail.

Ci-dessous est une description de la façon dont j'ai créé le jks fichier de stockage des clés pour Java client et le serveur et puis, la façon dont je suis en train d'exporter le serverpub.jks .fichier pem.

etape 1: Générer le Client et le Serveur des fichiers de clés

c:\keytool -genkeypair -alias myserverkeys -keyalg RSA -dname "CN=my Server,OU=kl2217,O=kl2217org,L=NYC,ST=NY,C=US" -keypass password -keystore server.jks -storepass password
c:\keytool -genkeypair -alias myclientkeys -keyalg RSA -dname "CN=my Client,OU=kl2217,O=kl2217org,L=NYC,ST=NY,C=US" -keypass password -keystore myclient.jks -storepass password

étape 2: Exporter le serveur de certificat public et de créer un autre fichier de clés

c:\keytool -exportcert -alias myserverkeys -file serverpub.cer -keystore myserver.jks -storepass spacex
c:\keytool -importcert -keystore serverpub.jks -alias serverpub -file serverpub.cer -storepass password

étape 3: Exportation du client certificat public et de créer un autre fichier de clés

c:\keytool -exportcert -alias myclientkeys -file clientpub.cer -keystore myclient.jks -storepass spacey
c:\keytool -importcert -keystore clientpub.jks -alias clientpub -file clientpub.cer -storepass password

So far So good.

Maintenant c'est ici que je rencontre des problèmes.

étape 4: Convertir serverpub.jks .format pem

c:\keytool -importkeystore -srckeystore serverpub.jks -destkeystore serverpub.p12 -srcstoretype jks -deststoretype pkcs12

Et la réponse

Enter destination keystore password:
Re-enter new password:
Enter source keystore password:
Problem importing entry for alias serverpub: java.security.KeyStoreException: TrustedCertEntry not supported.
Entry for alias serverpub not imported.
Do you want to quit the import process? [no]:

Qu'est-ce que cela signifie? Ce que je fais mal?

étape 5: Aurait été

c:\openssl pkcs12 -in serverpub.p12 -out serverpub.pem

Mais comme vous pouvez le voir, je ne pouvais pas loin.

Je voudrais vraiment l'apprécier un peu d'aide pour comprendre comment faire de ce droit.

Grâce

Je pense que vous avez besoin pour obtenir les concepts de droite en premier. serverpub.jks ne contient qu'un certificat; il n'a pas de clés privées. Le format PKCS12 que vous tentez d'exporter en attend une paire de clés, en d'autres termes, une clé privée et une clé publique.
Ah, je vois. Donc, est-il un moyen d'exporter simplement le cert .pem? Ce que je comprends c'est tout j'ai besoin de charger en C++ client magasin de confiance, non?
Je ne suis pas sûr de ce que vous essayez de faire. Essayez-vous de faire le client d'authentification? Si oui, alors le client a besoin de sa propre clé privée.
Ainsi, tout comme le Java, le client et le serveur de s'authentifier mutuellement, je veux la même chose entre le C++ client et serveur Java.
donc -genkeypair la clé du client dans son propre fichier de clés et d'exporter ce fichier de clés à un fichier PKCS12. Ensuite, le client doit également faire confiance à la clé publique du serveur, de sorte que doit être du client, magasin de confiance. Le serveur a besoin de la confiance du client à clé publique, de sorte que besoin d'être dans le serveur de la banque de confiance.

OriginalL'auteur driftwood | 2014-06-21