hum*_*der 21 email encryption mac-osx certificate-authority osx-snow-leopard
我这里有点问题。容忍我,因为这可能是“没有提出正确的问题”的情况。
背景:使用 Apple Mail。想要加密/解密电子邮件,但雪豹不支持 GPGMail(显然是 PGP)。
基本上我需要创建一个用于电子邮件加密的 S/MIME 证书。我不想要,也不关心证书颁发机构。我只是想要一个快速而肮脏的证书。这甚至可能(使用 OPENSSL 等)还是整个过程取决于更高的权威,迫使我要么建立一个全面的 CA 要么与一家公司(例如 Verisign、Thawte)打交道以获得证书?我的标准是即时满足和免费。
最好的事物。
小智 24
是的,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
Run Code Online (Sandbox Code Playgroud)
并按照提示操作。
您需要向加密电子邮件的每个收件人颁发您的 CA 证书(即ca.crt的内容)。收件人必须安装并信任您的 CA 证书,以便信任您的加密电子邮件。安装将因使用的每个邮件客户端而异。
在您的情况下,您需要将您的 CA 证书添加到您的 Apple Keychain。网上有很多关于如何在 Apple Keychain 中导入和信任 CA 证书的帖子。
您现在需要创建一个证书请求。为您希望从中发送电子邮件的每个电子邮件地址创建一个。执行以下命令...
# openssl genrsa -des3 -out humble_coder.key 4096
# openssl req -new -key humble_coder.key -out humble_coder.csr
Run Code Online (Sandbox Code Playgroud)
并按照提示操作。
您的个人证书需要由您的 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
Run Code Online (Sandbox Code Playgroud)
输出是您的签名证书。
您需要将您的证书从.crt(我认为是 PEM 格式)转换为.p12(PCKS12 格式)。
# openssl pkcs12 -export -in humble_coder.crt -inkey humble_coder.key \
-out humble_coder.p12
Run Code Online (Sandbox Code Playgroud)
您现在可以将*.p12*格式化的证书导入邮件客户端。在您的情况下,将*.p12*文件导入 Apple Keychain。正确安装证书后,Apple Mail 将开始使用您的证书。
当然,一旦您创建了自己的 CA,就有一种更简单的方法来管理您自己的证书颁发机构创建的证书。 openssl带有一个名为……的脚本。
# /usr/lib/ssl/misc/CA.pl
Run Code Online (Sandbox Code Playgroud)
这简化了成为您自己的证书颁发机构的过程。甚至还有一个 CA.pl 的手册页!
自由和由CA签名:http://www.instantssl.com/ssl-certificate-products/free-email-certificate.html