我可以创建自己的S / MIME证书进行电子邮件加密吗?[关闭]


19

我在这里有一个问题。请耐心等待,因为这可能是“不提出正确问题”的情况。

背景:使用Apple Mail。想加密/解密电子邮件,但Snow Leopard不支持GPGMail(显然是PGP)。

基本上,我需要创建一个S / MIME证书以用于电子邮件加密。我既不需要,也不需要证书颁发机构。我只想要一张快捷的证书。这是否可能(使用OPENSSL等)还是整个过程取决于更高的权限,迫使我要么建立一个全面的CA,要么与一家公司(例如Verisign,Thawte)打交道以获取证书?我的标准是即时满足和免费。

最好。


1
请注意,您的证书在S / MIME中有两个用途。签名您的电子邮件,以及解密其他人发送给您的电子邮件。要加密发送给他人的电子邮件,您需要他们的证书。通常,开箱即用地设置电子邮件客户端以信任某些预定的CA。如果证书没有被其中之一签名,则至少会收到令人讨厌的消息,甚至可能是无法正常运行的系统。
James Reinstate Monica Polk 2010年

1
我知道这是一个比较老的问题,但是为了将来参考,GPGMail插件现在可以在Snow Leopard上使用gpgtools.org/installer/index.html
Jason Whitehorn,

我知道这是一个较旧的评论-但是GPGMail已不再适用于OSX。
nycynik

Answers:


23

是的,很遗憾Apple Mail不支持GPG。:-(我希望这样做,因为我也更喜欢GPG加密的电子邮件。

我也同意,围绕S / MIME以及生成您自己的电子邮件证书的信息很难获得。我发现Paul Bramscher的网页很好地描述了如何创建自己的证书颁发机构证书。

我不假装不完全了解证书流程,但这就是我能够拼凑的内容。您应该查阅openssl手册页,以获取有关下面显示的每个命令的更多详细信息。

创建证书颁发机构

第一步是创建自己的证书颁发机构(CA)。命令是…

# openssl genrsa -des3 -out ca.key 4096
# openssl req -new -x509 -days 365 -key ca.key -out ca.crt

并按照提示进行操作。

您将需要向每个加密电子邮件的收件人颁发您的CA证书(即ca.crt的内容)。收件人将必须安装并信任您的CA证书,以便您的加密电子邮件将受到信任。对于每个使用的邮件客户端,安装将有所不同。

在您的情况下,您需要将CA的证书添加到Apple钥匙串中。网上有很多关于如何导入和信任Apple钥匙串中的CA证书的帖子。

创建个人电子邮件证书申请

现在,您需要创建一个证书申请。为您希望从中发送电子邮件的每个电子邮件地址创建一个。执行以下命令...

# openssl genrsa -des3 -out humble_coder.key 4096
# openssl req -new -key humble_coder.key -out humble_coder.csr

并按照提示进行操作。

证书颁发机构签署您的证书申请

您的个人证书需要由您的CA签名。在这种情况下,您!

# openssl x509 -req -days 365 -in humble_coder.csr -CA ca.crt -CAkey ca.key \
  -set_serial 1 -out humble_coder.crt -setalias "Humble Coder's E-Mail Certificate" \
  -addtrust emailProtection \
  -addreject clientAuth -addreject serverAuth -trustout

输出是您的签名证书。

准备要导入到邮件应用程序中的证书

您需要将证书从.crt(我认为是PEM格式)转换为.p12(PCKS12格式)。

# openssl pkcs12 -export -in humble_coder.crt -inkey humble_coder.key \
  -out humble_coder.p12

现在,您可以将*.p12*格式化的证书导入到邮件客户端中。根据您的情况,将*.p12*文件导入Apple钥匙串。正确安装证书后,Apple Mail将开始使用您的证书。

有一个更简单的方法

当然,一旦创建了自己的CA,就会有一种更简便的方法来管理自己的证书颁发机构创建的证书。 openssl带有一个名为…的脚本。

# /usr/lib/ssl/misc/CA.pl

这简化了成为您自己的证书颁发机构的过程。甚至还有CA.pl的手册页!


在“证书颁发机构签署您的证书申请”部分中。“ -CAKey”参数必须为“ -CAkey”,且小写字母为“ k”-至少对于我的版本为打开SSL 1.0.0a 2010
6

2
我将-CAKey更改为-CAkey。这是一个非常好的答案,但是关于GPG的附带评论却毫无保留。与GPG相比,S / MIME具有许多优势。除了更广泛的支持之外,它还包括带有每个签名消息的证书,从而提供了内置的证书分发机制。
vy32 2012年

不要忘记对证书设置一些限制,请参阅security.stackexchange.com/a/30069/3272
Tobias Kienzler 2013年

8

1
Commodo使用<keygen>标记使您的浏览器无需共享私钥即可进行CSR。在大多数现代浏览器(例如Chrome 49+)中,这不起作用。
mhvelplund

从页面引用:“ 请使用Mozilla®Firefox®或Microsoft®InternetExplorer®8+来收集证书。无法使用Google®Chrome®或Microsoft Edge收集电子邮件证书。”。这与MDN兼容性表匹配。
富兰克林·于

使用野生动物园工作。
nycynik

1

正如其他人所说,答案显然是肯定的。您可以通过openssl生成它,也可以使用提供免费x509电子邮件证书的提供程序之一。

话虽如此,最重要的问题是:您与之交换电子邮件的人使用什么?我活跃于自由软件社区,所以我与GPG交换电子邮件的大多数人。根据公司政策,我所知道的唯一使用S / MIME的人会在工作电子邮件中使用S / MIME。

如果您要发送电子邮件的人员不使用S / MIME,则您将无法对其进行加密,并且他们将无法验证已签名的电子邮件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.