2017-10-18 5 views
0

Je veux utiliser pyjks pour charger un keystore contenant des certificats de confiance et j'ai essayé d'ajouter un certificat de confiance, lu à partir d'un fichier ('trust2.pub') dedans .pyjks enregistre le fichier jks qui ne peut pas être ouvert par keytool

import jks 

ks = jks.KeyStore.load('trustore_file.jks', 'trustore_pass') 

new_entry = jks.TrustedCertEntry.new("trust2", open('trust2.pub', 'rb').read()) 

# Since I have not found an explicit way to add a new TrustedCertEntry, 
# I thought this would work (add the 'new_entry' in the ks.entries dict). 

ks.entries['trust2']=new_entry 

# save the file with the new cert. 

ks.save('trustore_file.jks', 'trustore_pass') 

Cela permet d'économiser en fait le fichier JKS avec la nouvelle entrée, que je peux voir si je tente de recharger le fichier avec le mot de passe donné. Mais lorsque je tente de l'ouvrir avec keytool dans ubuntu ou KeyStore Explorer dans Windows, je reçois l'erreur suivante:

java.io.IOException: Short read of DER length

Alors, peut-être ce qui est la façon dont j'ajouter la nouvelle TrustedCertEntry dans le fichier JKS, mais je ne pouvais Je ne sais pas, car pyjks n'a aucun problème pour le charger.

Si quelqu'un peut aider à ce sujet, je l'apprécierais vraiment.

Merci

Répondre

0

Je l'ai compris. C'était mon erreur d'importer un fichier .pub. Le fichier correct à importer était un fichier .cer au format X.509. Donc je vais laisser ceci ici si quelqu'un d'autre fait la même erreur.