Convertir SSL .pem .p12 avec ou sans OpenSSL
J'externes .pem
les fichiers doivent être convertis à .p12
fichiers - je ajouter un nom d'utilisateur et mot de passe dans le processus. (J'en ai besoin pour ce faire d'utiliser un tiers de l'API.)
À l'aide de openssl
, la commande est...
openssl pkcs12 -export -in xxxx.pem -inkey xxxx.pem -out xxx.p12 -passout pas:newpassword -name "newname"
Je peux l'exécuter à partir d'une session de terminal, et il fonctionne parfaitement.
Cependant, j'ai besoin de le faire souvent et ont écrit une classe Java qui gère cela et plus (ma demande est principalement .jsp
avec Tomcat et Apache). Lorsque j'essaie d'exécuter la même commande à partir de Java à l'aide de Runtime.exec
, j'ai le redoutable "impossible d'écrire "aléatoire" d'état" erreur ( À l'aide d'OpenSSL ce qui ne "impossible d'écrire "aléatoire" d'état"? ).
Je suppose que la différence est que, quand je le lance à partir de Java, l'utilisateur n'est pas "root".
Alors, est-il un meilleur moyen de convertir du format pem .p12 à l'aide d'une bibliothèque Java plutôt que de l'exécution d'un programme en ligne de commande (c'est à dire openssl)?
Sinon, je suppose que j'ai besoin de faire un peu de configuration sur mon serveur. Je ne peux trouver aucune .md
fichier n'importe où sur le serveur. La seule openssl.cnf
fichier est dans un drôle de répertoire (/etc/pki/tls
). Dois-je créer un nouveau openssl.cnf
fichier quelque part d'autre?
OriginalL'auteur DrDave | 2012-03-14
Vous devez vous connecter pour publier un commentaire.
Ceci devrait faire ce que vous voulez faire (à l'aide de la BouncyCastle PEMReader comme suggéré ci-dessus) - prendre un codés en PEM clé privée + certificat, et en sortie un fichier PKCS#12. Utilise le même mot de passe pour le PKCS12 qui a été utilisé pour protéger la clé privée.
OriginalL'auteur Muggles Merriweather
En Java, l'utilisation Bouncycastle mais attention, la courbe d'apprentissage est raide et documents rares. Je vous recommande fortement de regarder les exemples qui sont disponibles dans le cadre de la distribution source
Commencer avec la PemReader.
OriginalL'auteur Bruno Grieder
@MugglesMerriweather 's réponse, une version mise à jour de v1.51 est la suivante:
SC
signifie SpongyCastle fournisseur.OriginalL'auteur EpicPandaForce
Sur la base des réponses, j'ai créé une classe java 7, qui s'occupe de tout pour la création d'un valide SSLContext. Aussi, il crée la base nécessaire de la chaîne. TODO: Trustmanager si nécessaire.
OriginalL'auteur sascha.arthur