【问题标题】:Adding intermediate certificate to openssl_pkcs7_sign将中间证书添加到 openssl_pkcs7_sign
【发布时间】:2023-03-22 12:40:01
【问题描述】:

我正在使用此代码签署文件:

openssl_pkcs7_sign($in,$out,
     cert.crt,
     cert.key,
     array(),
     PKCS7_NOATTR
);

但是打开后仍然显示为未验证。

相反,这个 openssl 命令可以正常工作:

openssl smime -sign -in in -out out -signer cert.crt -inkey cert.key -certfile ca-bundle -outform der -nodetach

为什么 PHP 代码不起作用?

【问题讨论】:

    标签: php encryption openssl


    【解决方案1】:

    好的,

    openssl_pkcs7_sign($in,$out,
         cert.crt,
         cert.key,
         array(),
         PKCS7_NOATTR,
         "/real/path/of/ca/intermeidate/cert/file.pem"
            );
    

    成功了。最后一个 $extracerts arg 使用真实路径而不是 file://

    【讨论】:

    • 非常感谢,您帮我省了很多麻烦
    • @Reviewers,我不认为我为该帖子建议的编辑是“旨在解决该帖子的作者”。我认为它完全“作为编辑有意义”,因为它显着提高了答案的质量。你能详细说明你的拒绝吗?
    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2013-09-18
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 2022-10-03
    • 1970-01-01
    相关资源
    最近更新 更多