Skip to main content
 首页 » 编程设计

python m2crypt 和 load_key,但我只有一个 .cert 文件

2025年05月04日9cmt

我有一个问题。我正在用 python 测试一些关于 Apple 存折的技巧。我正在使用 M2Crypto 获取签名。

代码是:

    def passwordCallback(*args, **kwds): 
        return password 
 
    smime = SMIME.SMIME() 
    smime.load_key(key, certificate, callback=passwordCallback) 
    pk7 = smime.sign(SMIME.BIO.MemoryBuffer(manifest), flags=SMIME.PKCS7_DETACHED | SMIME.PKCS7_BINARY) 
    pem = SMIME.BIO.MemoryBuffer() 
    pk7.write(pem) 
    der = ''.join(l.strip() for l in pem.read().split('-----')[2].splitlines()).decode('base64') 

代码应该运行良好并生成签名内容,问题出在“ key ”和“证书”上。

这两个变量是 certificate.pem 和 key.pem 的名称,但我只从 Apple Developer 门户下载了 pass.cert 文件。

如何使用 openssl 或类似工具获取这两个文件?

已解决:

我已经用这个链接解决了

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

请您参考如下方法:

您需要从第三方证书颁发机构 (CA) 获取证书或使用类似 openSSL 中描述的过程创建自签名证书.如果您只是测试一些代码,自签名证书将起作用,但 CA 颁发的证书会向其他用户提供一些指示,表明您就是证书所说的人。您可以创建一个自称是 Tim_Cook@apple.com 的自签名证书,但没有信誉良好的 CA 会向您颁发这样的证书。