每年签名更新后 Pkpass 生成失败

问题描述 投票:0回答:2

我通过 AWS Lambda 函数生成 pkpass 文件。到目前为止,我一直在 wallet-3kpy(https://github.com/pretix/wallet-py3k) 库中使用certificate.pem、private.key 和 wwdr.pem 证书。现在,一年后,证书需要更新。因此,我完成了生成 .p12 文件的过程,以便从中提取certificate.pem 和 private.key。 wwdr.pem我没有碰过。 pkpass 的生成现在失败,并显示来自 openssl 的 DecryptFail 消息。我通过专用的 lambda 层向 lambda 函数提供了 openssl11。对于新的 pkpass,我使用了不同的 openssl 版本。难道是这个原因吗?

aws-lambda openssl passbook aws-lambda-layers pkpass
2个回答
1
投票

.p12 文件中的密钥可能与证书不匹配。

检查:

提取证书和密钥(将 file.p12 替换为您的 .p12 文件名)。 :

openssl pkcs12 -in file.p12 -clcerts -nokeys -out certificate.pem
openssl pkcs12 -in file.p12 -nocerts -out privatekey.pem

获取每个的模数:

openssl rsa -noout -modulus -in privately.pem | openssl md5
openssl x509 -modulus -noout -in certificate.pem | openssl md5

如果它们不匹配,则您的证书密钥错误。


0
投票

我以错误的方式生成了private.key。

正确的 2 个步骤是:

  1. 通过以下方式使用 .p12 文件创建certificate.pem:
     openssl pkcs12 -in your_p12_file.p12 -out certificate.pem -nodes
  1. 通过以下方式从certificate.pem创建private.key:
    openssl rsa -in certificate.pem -out private.key

与 wwdr.pem 一起(苹果证书也需要位于 .pem 中),pkpass 文件可以通过 wallet-py3k 库进行签名。

© www.soinside.com 2019 - 2024. All rights reserved.