【问题标题】:openssl_pkcs7_sign(): no certificates in file AppleWWDRCA.ceropenssl_pkcs7_sign():AppleWWDRCA.cer 文件中没有证书
【发布时间】:2016-05-05 03:09:21
【问题描述】:

我需要创建一个分离的 PKCS7 签名以用于 Apple Wallet 通行证。

代码

private function createSignature()
{
    $cert = '/etc/ssl/local.crt';
    $key = '/etc/ssl/local.key';
    $wwdr = '/var/www/app/storage/passes/AppleWWDRCA.cer';
    $headers = [
        'signing-time' => (new DateTime())->format('o-m-d H:i:s'),
    ];

    return openssl_pkcs7_sign("$this->dir/manifest.json", "$this->dir/signature",
        $cert, $key, $headers, PKCS7_DETACHED, $wwdr);
}

错误

openssl_pkcs7_sign(): no certificates in file, /var/www/app/storage/passes/AppleWWDRCA.cer

AppleWWDRCA.cer 是从 https://www.apple.com/certificateauthority/ 下载的。我下载的确切证书是WWDR Certificate (Expiring 02/07/23)。我查看了该文件并确认它不是空白的。我错过了一步吗?

【问题讨论】:

    标签: php ios ssl digital-signature pkcs#7


    【解决方案1】:

    通过将 AppleWWDR.cer 添加到我的钥匙串并将其从钥匙串中导出为 .pem 文件解决了这个问题。

    【讨论】:

    • 你在哪里以及对.pem文件做了什么?
    • @AlexAtwater 我只是在上面的函数中使用了对新 .pem 文件的引用,我相信。检查这个:stackoverflow.com/a/37124072/2172602
    猜你喜欢
    • 2023-03-22
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多