我有一个证书 C.pfx,它被授予我使用 OpenSSL。证书 C.pfx 具有以下证书路径:C->B->A
我使用以下命令将 C.pfx 转换为 PEM: openssl pkcs12 -in C.pfx -out C.pem -nodes -- 工作正常
我在文件编辑器中打开了证书 C.pem,发现它同时具有 RSA PRIVATE KEY 和 CERTIFICATE 部分。
我还看到在 Windows XP 的 Trusted Roor Certification Athorities 存储下安装了 A 和 B 证书。
目标是使用 OpenSSL for Windows 1.0.1c 版(目前是最新版本)对测试文件进行签名、加密、解密和验证
我使用以下命令:
- 签署 -
openssl smime -sign -signer C.pem -in test.txt -out test.tmp -- WORKS OK
--加密--
openssl smime -encrypt -in test.tmp -out test.enc C.pem -- WORKS OK
--解密--
openssl smime -decrypt -in test.enc -recip C.pem -inkey C.pem -out test1.tmp -- WORKS OK
- 验证 -
openssl smime -verify -in test1.tmp -CAfile "C.pem" -out notes1.txt -- FAILS
我使用 MMC 控制台将 B 和 A 证书导出到 CER 文件,然后使用 OpenSSL 将它们转换为 PEM。之后,我尝试了以下 2:
openssl smime -verify -in test1.tmp -CAfile "A.pem" -out notes1.txt -- FAILS
openssl smime -verify -in test1.tmp -CAfile "B.pem" -out notes1.txt -- FAILS
所有 3 次验证尝试均失败,并出现以下错误:
Verification failure
3672:error:21075075:PKCS7 routines:PKCS7_verify:certificate verify error:.\crypt
o\pkcs7\pk7_smime.c:342:Verify error:unable to get local issuer certificate
我究竟做错了什么?