使用 S/MIME 在 Ruby 中对电子邮件进行数字签名

Posted

技术标签:

【中文标题】使用 S/MIME 在 Ruby 中对电子邮件进行数字签名【英文标题】:Digitally sign email in Ruby with S/MIME 【发布时间】:2011-02-05 02:30:41 【问题描述】:

Ruby 中有没有一种方法可以使用 S/MIME 对电子邮件消息进行数字签名?我们的小组使用 PKI,我们的用户习惯于期待重要消息的数字签名。

我知道我可以调用 openssl 命令行工具:

openssl smime -sign -signer $CERT_FILE -passin pass:$CERT_PASS
  -in $UNSIGNED_MAIL -out $SIGNED_MAIL -certfile $CERT_CA_FILE
  -from 'your ' -to 'recipients <email@address>'
  -subject 'The Subject'

但我希望使用 Ruby 解决方案。

【问题讨论】:

我最终使用了上述解决方案,但是对于那些处于类似情况的人,您必须先转换 PKI 密钥(.p12 文件格式): op​​enssl pkcs12 -in #@cert_file - passin pass:#@pass_phrase -passout pass:#@pass_phrase -out #out_file 我无法相信当我在谷歌上搜索“ruby smime”时获得的(工作)代码示例的数量......这......令人印象深刻! 这是一个堆栈溢出,有人说他们知道如何做到这一点。我不明白发生了什么,不知道这会让你走多远:***.com/questions/11159478/… 请回答您自己的问题并将答案标记为已接受。 【参考方案1】:

我最终使用了上述解决方案,但对于那些处于类似情况的人,您必须先转换 PKI 密钥(.p12 文件格式):openssl pkcs12 -in #@cert_file -passin pass:#@pass_phrase -passout pass:#@pass_phrase -out #out_file

【讨论】:

以上是关于使用 S/MIME 在 Ruby 中对电子邮件进行数字签名的主要内容,如果未能解决你的问题,请参考以下文章

电子邮件安全:TLS 和 S/MIME

Windows 中的 S/MIME 时间戳

使用 S/MIME (PHP) 发送带有附件的电子邮件

没有 JCE 的 Java 中的 S/MIME

我可以将 S/MIME 作为多部分/混合消息的一部分吗?

如何在不解密的情况下检查加密的 S/MIME 消息是不是也被签名