Ошибка при перечислении хранилища ключей, созданного через pyjks - PullRequest
0 голосов
/ 23 мая 2019

Я создал файл .crt и .key с помощью модуля Openssl и пытаюсь сохранить эти сертификаты в хранилище ключей java, созданном с помощью модуля pyjks.Я могу сохранить их, но столкнулся со следующей ошибкой при перечислении сертификатов в хранилище ключей:

Error: 
keytool error: java.security.cert.CertificateParsingException: signed fields invalid
java.security.cert.CertificateParsingException: signed fields invalid
        at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1791)
        at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:195)
        at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:102)
        at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
        at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:755)
        at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56)
        at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
        at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)
        at java.security.KeyStore.load(KeyStore.java:1445)
        at sun.security.tools.keytool.Main.doCommands(Main.java:839)
        at sun.security.tools.keytool.Main.run(Main.java:368)
        at sun.security.tools.keytool.Main.main(Main.java:361)

мой код для создания сертификата, хранилище ключей и сохранения сертификата в хранилище ключей

  def save_to_keystore(keystore_name,keystore_password=constants.keystore_pwd,                                                                                                                            
155         store_entry=None):                                                                                                                                                                              
156                                                                                                                                                                                                         
157     ks = jks.KeyStore.load(keystore_name, keystore_password)                                                                                                                                            
158     if isinstance(store_entry,str):                                                                                                                                                                     
159         store_entry = [store_entry]                                                                                                                                                                     
160     for entry in store_entry:                                                                                                                                                                           
161         print entry                                                                                                                                                                                     
162         alias = os.path.basename(entry) + "_alias"                                                                                                                                                      
163         try:                                                                                                                                                                                            
164             new_entry = jks.TrustedCertEntry.new(alias, open(entry, 'rb').read())                                                                                                                       
165             ks.entries[alias]=new_entry                                                                                                                                                                 
166         except:                                                                                                                                                                                         
167             print_err("Failed to add new entry")                                                                                                                                                        
168         ks.save(keystore_name, keystore_password) 



144 def generate_java_keystore(keystore_name,keystore_password=constants.keystore_pwd,store_entry=[]):                                                                                                      
145     try:                                                                                                                                                                                                
146         ks = jks.KeyStore.new('jks',store_entry)                                                                                                                                                        
147         ks.save(keystore_name,keystore_password)                                                                                                                                                        
148         return keystore_name                                                                                                                                                                            
149     except:                                                                                                                                                                                             
150         print_err("Failed keystore with same name exists")                                                                                                                                              
151         raise 

и создания ключауказано: Как создавать и подписывать сертификаты с помощью PyOpenSSL Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...