中间证书只能包含根级别的证书仅一个级别吗?

问题描述

我收到了公钥,编码的私钥+密码短语和仅包含一个级别证书的中间件-我猜是根

我需要检查公钥和中间匹配项

当我使用一级中间文件运行此代码时,出现错误:X509StoreContextError:[2、1,'无法获取颁发者证书']

中级人员是否至少应包含2个级别的root和server?

我的代码

               from OpenSSL import crypto,SSL

               try:
                  cert_obj = crypto.load_certificate(crypto.FILETYPE_PEM,bublic_txt)
               except crypto.Error as err:
                  raise Exception('certificate is not correct: %s' % err)

                store = crypto.X509Store()
                for _cert in trusted_certs:
                    try:
                        intermediate_key_obj = crypto.load_certificate(crypto.FILETYPE_PEM,_cert)
                        store.add_cert(intermediate_key_obj)    
                    except crypto.Error as err:
                        raise Exception('Intermediate key is not correct: %s' % err)
                try:
                    store_ctx = crypto.X509StoreContext(store,cert_obj)
                    store_ctx.verify_certificate()
                except crypto.Error as err:
                    raise Exception('Intermediate key does not match public key: %s' % err)
                return True

在中间文件中使用多个级别即可正常工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)