我希望这里有人对OpenSSL有所了解。我是OpenSSL的新手,我正在尝试实现它来加密动态生成的Web商店的PayPal按钮。我有一个PHP脚本来执行此操作,但它不起作用,所以我决定尝试在命令提示符下运行该命令,并意识到它在我尝试加密时挂起。
我已经生成了公共证书和私钥,而且我还下载了PayPal的公共证书。
这是我试过的命令:
(openssl smime -sign -signer C:\Users\MyName\Desktop\OpenSSLTest\my-pubcert.pem -inkey
C:\Users\MyName\Desktop\OpenSSLTest\my-prvkey.pem -outform der -nodetach -binary
C:\Users\MyName\Desktop\OpenSSLTest\DataToEncrypt.txt) | openssl smime -encrypt -des3
-binary -outform pem C:\Users\MyName\Desktop\OpenSSLTest\paypal_cert.pem
当我运行此命令时,我收到以下消息:
Loading 'screen' into random state -Loading 'screen' into random state -done done
此时它挂了。有没有OpenSSL经验的人知道为什么会发生这种情况吗?请记住,我以前从未使用过OpenSSL,所以我可能会忽略一些简单的事情,这就是为什么我希望有人能指出我正确的方向。
我感谢任何建议!谢谢!
答案 0 :(得分:1)
您在命令的前半部分缺少-in
,后来尝试从标准输入读取数据(并因此挂起)。
正确的命令行应该是
openssl smime -sign -signer C:\Users\MyName\Desktop\OpenSSLTest\my-pubcert.pem -inkey
C:\Users\MyName\Desktop\OpenSSLTest\my-prvkey.pem -outform der -nodetach -binary
-in C:\Users\MyName\Desktop\OpenSSLTest\DataToEncrypt.txt | openssl smime -encrypt -des3
-binary -outform pem C:\Users\MyName\Desktop\OpenSSLTest\paypal_cert.pem
请注意在第3行添加了-in
。
然后DataToEncrypt.txt将被正确读取为输入文件。