我想使用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加载它没有问题。
如果有人可以提供帮助,我会非常感激。
由于
答案 0 :(得分:0)
我明白了。导入 .pub 文件是我的错误。要导入的正确文件是 X.509格式中的 .cer 文件。如果其他人犯了同样的错误,我会把它留在这里。