我正在尝试通过SSH连接到我大学的服务器,以便进行OpenSSL分配。我有自签名证书aasignedcert.pem
,使用aaprivatekey.pem
和我的明文test.txt
签署的私钥。
我首先使用以下命令签署了我的消息以创建我的testsigned.txt
文件:
openssl smime -sign -signer aasignedcert.pem -in test.txt -inkey aaprivatekey.pem > testsigned.txt
然后,加密文件以生成testsigned.txt.enc
:
openssl smime -encrypt -in testsigned.txt -aes128 aasignedcert.pem > test.txt.enc
为了确保一切正常,我解密了该文件并将其存储在testsigned.dec.txt
:
openssl smime -decrypt -aes128 -in test.txt.enc -inkey aaprivatekey.pem > test.dec.txt
解密文件确实具有原始明文。最后,我尝试使用我签名的证书验证它:
openssl smime -verify -in test.dec.txt -CAfile aasignedcert.pem -certfile aasignedcert.pem
然而,这不起作用。即使摆弄参数,我仍然会收到此错误消息:
Verification failure
139814549997256:error:21075075:PKCS7 routines:PKCS7_verify:certificate verify error:pk7_smime.c:342:Verify error:unable to get local issuer certificate
我无法弄清楚我做错了什么。有没有人有想法?
答案 0 :(得分:1)
你是如何创建aasignedcert.pem的?也许您使用您创建的本地CA对其进行了自签名?如果是这种情况,我认为您需要将 CA 的证书传递给-CAfile参数。
openssl smime -verify -in test.dec.txt -CAfile [CA的证书] -certfile aasignedcert.pem
答案 1 :(得分:0)
要在验证消息时禁止检查密钥证书,可以将-noverify参数提供给verify命令(尽管openssl smime验证-noverify确实看起来有点奇怪)。