PHP openssl_pkcs7_verify在无效证书上返回true
我正在尝试使用openssl_pkcs7_verify()验证S/MIME消息签名 使用“传输测试工具” 我正在向我的地址发送示例S/MIME消息,在成功解码后,我尝试验证它的签名 如果证书正确,我就成功了, 但当证书无效时,我也获得了成功 如何使用PHP或openssl命令正确验证它PHP openssl_pkcs7_verify在无效证书上返回true,php,openssl,smime,Php,Openssl,Smime,我正在尝试使用openssl_pkcs7_verify()验证S/MIME消息签名 使用“传输测试工具” 我正在向我的地址发送示例S/MIME消息,在成功解码后,我尝试验证它的签名 如果证书正确,我就成功了, 但当证书无效时,我也获得了成功 如何使用PHP或openssl命令正确验证它 <?php # Good cert $bRes = openssl_pkcs7_verify('decoded_1.txt', 0, 0, array('nist.gov.pem', 'sampleca.n
<?php
# Good cert
$bRes = openssl_pkcs7_verify('decoded_1.txt', 0, 0, array('nist.gov.pem', 'sampleca.nist.gov.pem'));
$bErr = openssl_error_string();
var_dump($bRes, $bErr); # returns true, false
# Invalid cert
$bRes = openssl_pkcs7_verify('decoded_2.txt', 0, 0, array('nist.gov.pem', 'sampleca.nist.gov.pem'));
$bErr = openssl_error_string();
var_dump($bRes, $bErr); # returns true, false
我已经设法在我的数据上运行openssl命令。首先,我将两个证书合并到一个文件中:“cat sampleca.nist.gov.pem nist.gov.pem>concat.pem”,然后运行“openssl smime-verify-in decoded_1.txt-CAfile concat.pem”,得到结果=0。解码的_2.txt的结果相同。奇怪…我已经设法在我的数据上运行openssl命令。首先,我将两个证书合并到一个文件中:“cat sampleca.nist.gov.pem nist.gov.pem>concat.pem”,然后运行“openssl smime-verify-in decoded_1.txt-CAfile concat.pem”,得到结果=0。解码的_2.txt的结果相同。奇怪的