pyjks保存了无法通过keytool打开的jks文件

时间:2017-10-18 17:20:53

标签: python keystore pyjks

我想使用pyjks加载包含可信证书的密钥库,我一直在尝试添加一个可信证书,从文件中读取('trust2.pub')。

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')

这实际上使用新条目保存jks文件,如果我尝试使用给定密码重新加载文件,我可以看到。但是当我尝试使用ubuntu中的keytool或Windows中的KeyStore Explorer打开它时,我收到以下错误:

  

java.io.IOException:短读DER长度

所以,也许这就是我在jks文件中添加新的TrustedCertEntry的方式,但我不知道,因为pyjks加载它没有问题。

如果有人可以提供帮助,我会非常感激。

由于

1 个答案:

答案 0 :(得分:0)

我明白了。导入 .pub 文件是我的错误。要导入的正确文件是 X.509格式中的 .cer 文件。如果其他人犯了同样的错误,我会把它留在这里。