将中间证书添加到openssl_pkcs7_sign

时间:2012-11-26 15:23:27

标签: php encryption openssl

我正在使用此代码对文件进行签名:

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代码不起作用?

1 个答案:

答案 0 :(得分:3)

好的,

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

诀窍。最后的$ extracerts arg使用真实路径而不是file://