python m2crypt和load_密钥,但我只有.cert文件

python m2crypt和load_密钥,但我只有.cert文件,python,openssl,pem,passbook,Python,Openssl,Pem,Passbook,我有一个问题。我正在用python测试关于Apple passbook的一些技巧。我正在使用M2Crypto来获取签名 代码是: def passwordCallback(*args, **kwds): return password smime = SMIME.SMIME() smime.load_key(key, certificate, callback=passwordCallback) pk7 = smime.sign(SMIME.BI

我有一个问题。我正在用python测试关于Apple passbook的一些技巧。我正在使用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')
该代码应该运行良好并生成签名内容,问题在于“密钥”和“证书”

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

如何使用openssl或类似的东西获取这两个文件

已解决:

我已经解决了这个链接


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

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