说到数字证书,常见的除了有 SSL(Secure Sockets Layer,安全套接层)证书外,还有 Code Signing(代码签名)证书、Document Signing(文件签名)证书和邮件证书(S/MIME)。SSL 证书通常用于加密互联网连接,而代码签名和文档签名证书则多用于身份识别和认证,S/MIME 则均具两者之间的功能——为邮件签名,同时可以选择使用证书加密邮件。笔者将在本文介绍一下目前几乎是唯一一款免费的电子邮件加密证书——Actalis Free S/MIME Certificates 及电子邮件证书的详细使用。
Actalis Free S/MIME Certificates 简介
ACTALIS S.p.A. Sole Shareholder Limited Company (以下简称 Actalis 公司或 Actalis)是一家拥有 WebTrust 认证的顶级证书颁发机构(Root CA),是欧洲主要的 SSL CA 和 CA/Browser 论坛唯一一位来自意大利的会员。 Actalis 目前有两条产品线,分别为 SSL 证书和 S/MIME 证书,SSL 不再赘述(他家的直销价格比较贵,建议去 www.kurito.net 买骨折价);本文的重点在他家的 S/MIME 证书上。Actalis 签发两类 S/MIME 证书,分别为企业级 S/MIME 证书(Corporate S/MIME Certificates)和免费 S/MIME 证书(Free S/MIME Certificates)。其中,企业级证书需要公司统一提供身份证明和电子邮件地址,由 Actalis 审核后签发,最长有效期为三年;个人证书是免费开放申请的,有效期为一年整。 目前,诸如 DigiCert 和 Sectigo 都有开放过免费或仅收一元的个人邮件证书,但绝大多数有效期仅为三个月——甚至还有一个月的“试用版”。基于 S/MIME 实现加密并让收件人成功解密这一过程的复杂性,笔者并不建议将三个月的邮件证书用在上产环境——每个季度都要发邮件通知收件人“我更新了邮件加密证书”显然不够专业和安全。
Actalis Free S/MIME Certificates 申请
访问申请链接 https://extrassl.actalis.it/portal/uapub/freemail (服务器在 Actalis 的老家意大利,众所周知,国内网络对意大利的服务器不是很友好,建议耐心地等几分钟)
在第一个输入框内填上你的电子邮件地址,并单击下方的“Send Verification Email”按钮,静待验证邮件发送到你的邮箱中。
验证邮件由意大利语和英语两种语言写成,大意是“为了确定电子邮件的有效性,我们给您发送了这封邮件,下方附带了验证码,希望您能按照操作继续这一过程”云云,见下图:(token 和 code 均已经过处理)
回到 Actalis Free Email Certificate 申请页面,将刚刚从邮件中获得的 Verification code 填入对应的文本框中,依次单击下方的 Google reCAPTCHA 认证块进行人机验证,勾选下方三个复选框(分别表示“我声明已阅读并接受上述条款和条件,包括适用的证书政策。”“我声明已仔细阅读并明确接受上述特定条款。”“我声明已阅读由Actalis根据欧洲联盟2016/679号条例(“GDPR”)第13条提供的上述隐私信息,并同意出于指定目的和方式处理个人数据。我还声明并知道,在不同意这种处理的情况下,可以使用上述信息中指明的规定。”),最后两道“选择题”属于对方征求向您发送商业营销邮件许可,笔者就不过多解释,请诸位看官随意选择。一切选择题都做完之后,单击下方的“Submit request”按钮:
一切准确无误后,页面将跳转到“申请成功”界面,您的证书密码将显示在网页上(注意,此密码仅在此页面显示一次,务必妥善保管密码),单击下方的“PRINT”可以调出浏览器的打印窗口方便将此页打印保存。
与此同时,PFX(Personal inFormation eXchange,个人信息交换)格式的证书文件将作为附件发送至申请证书的邮箱中。
S/MIME 在 Outlook 上的使用
Outlook Web App(即 Outlook 网页版)支持使用 S/MIME 签署或加密发送邮件,但需要 Microsoft Edge 或 Google Chrome 安装相关扩展程序(即“插件”)支持;安装这些扩展程序需要用到浏览器策略 ExtensionInstallForcelist,而此项策略仅在当前计算机加入了域或 Microsoft Azure AD 是才会生效,到头来还得把自己的电脑“上云”……着实痛苦。笔者折腾一下午无果,由是放弃在 Outlook Web App 上发送签名或加密邮件。
下面来具体说 Microsoft Office Outlook(Outlook 客户端)如何使用 S/MIME 证书为邮件签名和加密。 首先,你必须安装了 Office 专业版或以上才能够使用 Office Outlook 客户端。没有的话,蓝点网 Office Tool Plus 可以一键卸载、一键安装、一键 KMS 激活(有桌面版 Office 订阅的可以直接登录激活)。 配置 Outlook 客户端的相关操作多如牛毛,在此不表。
此处插段科普:
- 一般的,S/MIME 证书用于对邮件进行“签署”或“加密”,“签署”指不使用证书私钥对邮件内容进行加密、仅将自己的证书公钥附在邮件上以证明自己身份的行为,如是发出的邮件由于是明文,可被收件人直接解读;“加密”指使用收件人的证书公钥对邮件进行加密,如是发出的邮件为密文,收件人需要使用自己的证书私钥钥对邮件进行解密;
- 邮件的签署和加密为互不对立、互不包含的两项操作,换句话说可以“签署但不加密”、可以“加密但不签署”(不建议如此),也可以“签署并加密”;同一封邮件中,发件人可以使用相同或不同的证书进行“签署”和“加密”;
- “签署但不加密”的邮件发到收件人手中时,收件人即拥有了发件人的证书公钥;“签署并加密”的邮件到达收件人手中时,收件人必须使用已经自己的证书私钥钥才能解密邮件;换句话说,发件人必须预先向收件人发送过一封“签署但不加密”的邮件,确保收件人保存发件人的证书公钥后再发送“签署并加密”的邮件,才能保证收件人能够成功解密已加密的邮件。
此处笔者以发件人 i@iksi.me 和收件人 z@idc.moe 建立加密邮件通信为例,演示 Outlook 客户端使用 S/MIME 签署和加密邮件的功能。 双击前文所提到的 Actalis 签发的 S/MIME 证书,进入 Windows 证书导入向导。无脑快进到下一步,输入 Actalis Free Email Certificate “申请成功”界面显示的密码,下一步选择“将所有的证书都放入下列存储(P)”——“个人”并继续加速(下一步)直至完成。
打开 Outlook 客户端,依次单击“文件(左上角)”“选项(左下角)”“信任中心(对话框左边底部)”“信任中心设置”“电子邮件安全性”“设置”,并在弹出的对话框中设置上一步导入的数字证书,依次单击各级对话框的“确定”以保存所做的更改:
发件人与收件人初次通信
由于发件人和收件人均没有对方的证书公钥,因此需要初次通信互相发送“签署但不加密”的邮件以互相交换证书公钥,为以后的加密通信创造条件。 转到 Outlook 客户端主界面,单击左上角的“新建电子邮件”按钮,开始写邮件,收件人为 z@idc.moe,接着便是一些必要的信息。
单击导航栏“选项”选项卡,在下方飘过的一组功能里选中“签署”(注意,目前为初次通信,请勿选择“签署”左边的“加密”)
一切就绪,发送之。数秒后,收件人 z@idc.moe 已收到。邮件标题后面跟有“数字签名”的标志。
收件人向原发件人传递自己的证书公钥
使用 z@idc.moe 向 i@iksi.me 回复一封“签署但不加密”的邮件。数秒后,i@iksi.me 已收到。右方有“已签名”的标记。
发件人保存收件人证书公钥(将收件人及其证书公钥添加至通讯录)
双击目前的发件人 z@idc.moe 头像左上的电子邮件地址(不要双击头像),弹出名片,单击电子邮件地址下方、“发送电子邮件”右方的三个点,选择“添加到联系人(A)”:
弹出的窗口会列出联系人信息,单击上方导航栏的“证书”,确定对方的证书存在后,单击左上角的“保存并关闭”:
发件人向收件人发送加密邮件
再次新建电子邮件,在选择“收件人”时直接单击“收件人(T)”按钮,在弹出的窗口中找到 z@idc.moe,双击之,使窗口下方“收件人”一栏里出现联系人名称,单击下方的“确定”:
单击导航栏“选项”选项卡,在下方飘过的一组功能里选中“签署”和“加密”(此时可以向收件人 z@idc.moe 发送使用 S/MIME 证书加密过的邮件了):
数十秒后,收件人 z@idc.moe 收到了加密邮件。右方有“已加密”的标记。
S/MIME 在 Magic WinMail 上的使用
首先感谢鹏老板赞助的 Magic WinMail 邮局,@idc.moe 邮件服务运行于其上。 由于前文的描述细节较为完整,在此仅粗略地叙述一下 Magic WinMail 与 Outlook 在 S/MIME 方面的区别: Magic WinMail 只认可证书 Subject 的 emailAdress 字段与邮箱地址匹配,而目前根据 RFC 5751 的定义,S/MIME 证书由证书增强型密钥用法 1.3.6.1.5.5.7.3.4 标识和控制,电子邮件地址将作为 commonName 写在证书中,故包括 Actalis Free S/MIME Certificates 在内的 S/MIME 证书均无法成功导入 Magic WinMail,即无法使用上述受影响的证书发件和解密收件。 纵然如此,使用自签名证书依旧可以使 Magic WinMail 实现签署和加密邮件。
Magic WinMail 自签名证书
单击 Magic WinMail 左上角九宫格状按钮,在弹出的 Tab 中选择“配置箱”,选择左侧的“证书管理”,“我的证书”右边的“ ”,在右边填入相应信息后单击“保存”按钮,完成自签名证书的签发:
Magic WinMail 签名邮件
单击 Magic WinMail 的“写邮件”按钮,填写收件人、邮件主题和邮件内容后勾选右边的“数字签名”,发送之。
数秒后,收件人在 Outlook 收到邮件(由于使用自签名证书签署邮件,此信大概率被投入垃圾箱)。参见上文“将收件人及其证书公钥添加至通讯录”的操作。
Magic WinMail 发送加密邮件
单击 Magic WinMail 左上角九宫格状按钮,在弹出的 Tab 中选择“配置箱”,选择左侧的“证书管理”,“其他人的证书”右边的“上传”,在右边选择上传的证书文件后单击“导入”按钮,完成收件人证书公钥的导入:
单击 Magic WinMail 的“写邮件”按钮,填写收件人、邮件主题和邮件内容后勾选右边的“数字签名”和“邮件加密”,发送之。
仍然提示“以下地址没有 SSL 证书,不能发送加密邮件!”暂无解决办法。
终。
参考来源
- S/MIME Specification (RFC 5751)
- Encrypt messages by using S/MIME in Outlook Web App
- 使用 Web 版 Outlook 中的 S/MIME 加密邮件
- Configure S/MIME settings in Exchange Online for Outlook on the web
- Reference record for OID 2.5.29.32