我有一个问题。我正在用 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 会向您颁发这样的证书。
关于python m2crypt 和 load_key,但我只有一个 .cert 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12563730/