Comment utiliser .clé et .crt fichier en java généré par openssl?
J'ai besoin d'un chiffrement asymétrique en java. - Je générer .clé et .crt fichiers avec un mot de passe .crt fichier openssl qui a dit dans http://www.imacat.idv.tw/tech/sslcerts.html .
Comment utiliser ces .clé et .crt fichier pour extraire publickey et la clé privée en Java?
OriginalL'auteur Sajad Bahmani | 2011-06-26
Vous devez vous connecter pour publier un commentaire.
Votre
.key
et.crt
fichiers peuvent être au format PEM. Pour vérifier cette de les ouvrir avec un éditeur de texte et vérifiez si le contenu ressemble à------BEGIN CERTIFICATE------
(ou "begin RSA private key"...). C'est en général le format par défaut utilisé par OpenSSL, sauf si vous avez explicitement spécifié DER.Ce n'est probablement pas nécessaire (voir ci-dessous), mais si votre certificat est au format DER (format binaire), vous pouvez les convertir au format PEM à l'aide de:
(Consultez l'aide pour
openssl rsa
pour faire quelque chose de similaire avec la clé privée en cas de besoin.)Ensuite, vous avez deux options:
Construire un fichier PKCS#12
Vous pouvez alors l'utiliser directement à partir de Java en tant que fichier de clés de type "PKCS12". La plupart des applications Java devrait vous permettre de spécifier un type de magasin de clés en plus de l'emplacement du fichier. Pour la valeur par défaut des propriétés du système, c'est fait avec
javax.net.ssl.keyStoreType
(mais l'application que vous utilisez peut-être pas à l'aide de ce). Sinon, si vous voulez charger explicitement, utilisez quelque chose comme ceci:(Ensuite, vous devriez être en mesure de parcourir les
aliases()
de laKeyStore
et l'utilisationgetCertificate
(et puisgetPublicKey()
pour la clé publique) etgetKey()
.Utilisation BouncyCastle's
PEMReader
.De la clé privée, vous aurez besoin de mettre en œuvre un
PasswordFinder
(voir le lien de PEMReader doc) pour la construction de laPEMReader
si la clé privée est protégée par mot de passe. (Vous aurez besoin de jeter le résultat dereadObject()
dans unKey
ouPrivateKey
.)À l'aide de
getKey()
. Lorsque vous utilisez le format PKCS#12, c'est le même mot de passe pour la clé, comme pour le magasin lui-même.Merci beaucoup pour ce petit exemple. Il m'a aidé à comprendre le pem-reader, lire la .crt fichiers que j'ai, de comprendre DER/PEM un peu mieux, etc. Maintenant, il ne devrait pas être un problème pour obtenir à la fois les clés du fichier pem. Pouvez-vous aller écrire pour bouncycastle... ils ont besoin d'aide!
juste de rappeler que BouncyCastle de
PEMReader
n'est pas toujours nécessaire, en fonction de ce que vous avez à lire. Si c'est juste pour les certificats, vous pouvez essayer leCertificateFactory
(partie de JSSE). Voir l'exemple ici note ici (le commentaire peut être utile).Yep. J'ai encodé au format PEM fichiers afin de les
CertificateFactory
semble fonctionner... maisgenerateCertificate
pour le nom... n'aurais pas deviné en un an.OriginalL'auteur Bruno
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
Prendre un coup d'oeil à org.bouncycastle.crypto.les générateurs.OpenSSLPBEParametersGenerator
OriginalL'auteur Kirby
Comme je le comprends, OpenSSL a enregistré des fichiers dans les soi-disant format PEM. Vous devez le convertir en Java de Stockage de Clés (JKS) format, puis de travailler avec ce format (qui est originaire de Java) pour extraire les fichiers. Pour la conversion, veuillez utiliser cette requête Google, il donne d'assez bons résultats.
Charger le fichier JKS à java.de sécurité.Fichier de stockage des clés de la classe. Ensuite, utilisez getCertificate et getKey méthodes pour obtenir l'information nécessaire.
regardez à l'intérieur de ces fichiers si ils sont texte avec "- - - - - ... - - - - - " en-tête et pied de page correspondante, que c'est Format PEM.
OriginalL'auteur Eugene Mayevski 'Allied Bits