3

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

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

4

1 回答 1

3

好的,

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

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

于 2012-11-26T16:11:47.900 回答