使用 GnuPG 创建的 GPG 公钥被 MS Outlook 2010 拒绝,为什么?

使用 GnuPG 创建的 GPG 公钥被 MS Outlook 2010 拒绝,为什么?

我在 CentOS 7 命令行上使用 GnuPG 创建了一个 GPG 密钥对,并将公钥导出到一个.asc文件中,并成功使用该公钥加密从另一个电子邮件地址发送的电子邮件,该电子邮件已使用与该公钥一起创建的私钥成功解密。

那么,我如何生成一个 MS Outlook 2010 能够接受的公钥文件,并能够成功使用它来加密通过相同私钥加密的电子邮件?

以下是我目前所做的工作:

  1. gpg --list-public-keys使用 putty,我在服务器终端上输入。我注意到,这12321KP4是公钥的 ID,在结果中gpg --list-public-keys

  2. 我接下来输入了gpg --armor --export 12321KP4 > /path/to/username_pubkey.cer

  3. 然后我输入cat /path/to/username_pubkey.cer并确认它实际上是一堆加密内容。

  4. 我下载了结果username_pubkey.cer文件。

  5. 我打开了“Outlook 2010”。

  6. 在“Outlook > 联系人”中,我打开了证书为 的联系人的联系表username_pubkey.cer

  7. 在“联系人”选项卡的“显示组”中,我单击了“证书”,然后单击了“导入”。

  8. 我选择了该username_pubkey.cer文件并单击“打开”,但出现了以下错误对话框:

在此处输入图片描述

如何生成 Outlook 可以导入的密钥文件,然后成功使用它来发送可以在另一端解密的加密电子邮件?

请注意,Thunderbird 可以使用来自同一密钥的密钥文件执行此操作。另请注意,我希望先以这种方式手动导入密钥,然后等到以后再开发通过电子邮件发送密钥的工具。私钥位于托管应用程序的服务器上,我必须编写自己的代码才能通过电子邮件发送公钥。我想等到这种方法奏效后再编写该代码。

编辑

根据建议@Giacomo1968 的回答,我输入了sudo unix2dos /path/to/username_pubkey.cer /path/to/username_pubkey_dos.cer,但收到的回复如下:

unix2dos: converting file /path/to/username_pubkey.cer to DOS format ...
unix2dos: /path/to/username_pubkey_dos.cer: No such file or directory
unix2dos: Skipping /path/to/username_pubkey_dos.cer, not a regular file.

我该如何解决这个问题?

答案1

您混淆了两种不同的数字证书系统。证书是不是两个系统之间可以互换。

开放PGP

OpenPGP 提供非层次化信任系统,不需要中央证书颁发机构。它是更强大但也更复杂的系统。大多数邮件客户端并不支持它,需要附加组件才能使用它。

每个人都可以创建自己的密钥,并让其他人签名。

X.509 和 S/MIME

数字证书的另一种选择是 X.509,它用于电子邮件的 S/MIME,也用于 HTTP 和其他协议的传输加密的 SSL/TLS。在这里,您有一堆您信任的证书颁发机构(实际上通常有数百个)(根据您计算机/邮件客户端的默认设置),它们可以为您自动信任的其他人提供担保(颁发证书)。

它非常适合(层级组织)公司,这可能是它得到更广泛实施的原因。Outlook、Thunderbird 和大多数其他(合理的)邮件客户端默认支持它。

有很多证书颁发机构可以购买此类证书(在给定的时间范围内有效)。我只列出两个特别有趣的:

  • 启动SSL是一家位于以色列的公司,免费为邮件和服务器颁发基本证书,但不验证您的真实身份(仅验证您的邮件地址)。其优势在于,所有主要浏览器和操作系统供应商都信任这些证书。包含您的真实姓名的证书每年的固定费用约为 60 美元。请注意,撤销证书(例如,以防第三方获得证书并以您的名义发送电子邮件)的费用约为 25 美元(许多其他公司也收取此费用)。

  • 证书颁发机构是一个“社区驱动的证书颁发机构”。他们通过其他社区成员的同意来验证您的身份,因此您必须与其他人见面并出示您的身份证才能将您的姓名写入证书(有关详细信息,请参阅他们的网站)。颁发证书和撤销证书始终是免费的,但缺点是他们的根证书不受主要操作系统和邮件客户端的信任。

    对于有限的团体或私人用途来说可能是可行的,但如果用于商业用途则要注意这个问题。

答案2

Outlook 2010 只能处理开箱即用的 S/MIME。如果您想使用 OpenPGP,则需要一个插件。对于 GnuPG,有三个选项

  1. Outlook 隐私插件
  2. gpg4o

第一个是免费和开源的,但只适合勇敢的人。同样适用于 gpg4win 项目的插件。如果需要一个好用的插件,你应该尝试 gpg4o,它不是免费的,但运行起来很轻松。所有这些都应该能够导入你在 CentOS 下创建的密钥。

答案3

Outlook 不使用普通 (pgp) 私钥来签名电子邮件。它使用 SSL 样式证书及其相关私钥(由受信任的第三方签名)来完成工作。Outlook 需要此证书采用 pkcs12 格式。(Linux“文件”命令可以确认这一点)

这样做的优点/缺点是您无法获得“信任网络”来确认私钥属于您认为的人,而优点/缺点是您只是信任“受信任的第三方”。

最大的缺点是您必须为 Outlook 证书付费。

答案4

不是 100% 确定,但如果证书在其他地方有效,这可能是 DOS 行尾格式与 Linux 行尾格式之间的简单情况,从而搞乱了 Outlook 2010 中的工作。

我建议安装unix2dosCentOS 上的实用程序如下:

sudo yum install unix2dos

然后从 CentOS 中的命令行unix2dos使用标志运行此命令-n

unix2dos -n username_pubkey.cer username_pubkey_dos.cer

然后尝试将其导入username_pubkey_dos.cerOutlook 2010。

相关内容