OpenSSLを使用するために与えられた証明書C.pfxがあります。証明書C.pfxには、次の認証パスがあります:C-> B-> A
次のコマンドを使用して、C.pfxをPEMに変換しました:openssl pkcs12 -in C.pfx -out C.pem -nodes --WORKS OK
ファイルエディタで証明書C.pemを開いたところ、RSAPRIVATEKEYとCERTIFICATEの両方の部分があることがわかりました。
また、WindowsXPのTrustedRoorCertificationAthoritiesストアにインストールされている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
VERIFYの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
私は何が間違っているのですか?