使用 openssl smime 加密大文件

Posted

技术标签:

【中文标题】使用 openssl smime 加密大文件【英文标题】:Encrypt a big file using openssl smime 【发布时间】:2013-09-26 07:27:34 【问题描述】:

我已经在我的系统中生成了一个本地证书,我正在尝试通过 smime 加密一个文件。但是当我运行命令时,它给了我错误Unable to load certificate Expecting trusted certificate Error 1024。这是我正在尝试运行的脚本

openssl  smime  -encrypt -aes256  -in  ABC.xml  -binary  -outform DEM  -out  DEF.xml  test.pem

Test.pem 是我的公钥。谁能告诉我如何绕过此部分并生成文件。 提前致谢。

【问题讨论】:

你是如何创建你的test.pem的? 【参考方案1】:

您没有说明您是如何创建 test.pem 的,但以下是您可能可以使用的命令序列:

创建新密钥和证书请求(系统将提示您提供其他信息以完成请求):

openssl req -newkey rsa:2048 -keyout privkey.pem -out req.pem

自签名证书请求以创建证书

openssl x509 -req -in req.pem -signkey privkey.pem -out cert.pem

(如果您愿意,此时您可以删除req.pem

使用新生成的证书加密文件:

openssl smime -encrypt -aes256 -in ABC.xml -binary -outform DER -out DEF.xml cert.pem

然后可以使用以下方法解密文件:

openssl smime -decrypt -in DEF.xml -inform DER -inkey privkey.pem -out GHI.xml

【讨论】:

我正在尝试运行第一个命令,但它说无法加载 openssl.conf @user2216168 您可以添加-config path/to/openssl.conf 参数以将其定向到有效的openssl.conf。您的 openssl 安装应包含此文件的示例版本(在 ssl 子目录中),您可以按原样使用或根据需要进行修改。

以上是关于使用 openssl smime 加密大文件的主要内容,如果未能解决你的问题,请参考以下文章

使用rust的openssl库加密/解密大文本

使用 OpenSSL 解码/提取 smime.p7m 文件内容(带有嵌入文件的电子邮件)?

使用 OpenSSL 从 SMIME 消息(pkcs7 签名)中提取公共证书

ruby/rails 中的 openssl smime

使用 Bouncy Castle 在 Java 中复制“openssl smime”?

AES 加密 - 大文件