前言
因为自打开始正经使用电子邮件时,先是 Foxmail(QQ 邮箱)再是 Gmail。这两家都是网页处理电邮做的很不错的了,所以就一直没有用过 Outlook、Foxmail 客户端 这样的客户端软件来管理电子邮件。后来电子邮件多了,一个账号一个账号的转换太麻烦了。就开始使用客户端软件了,结果捏发现有给电邮上数字签名和数字加密的选项,就开始研究了。
现代的商务活动更多的都是通过网络方式实现的,但是旧的传输方式都是有缺陷的,很容易被窃取信息和劫持,所以自打 HTTP/2 开始,通过 SSL 加密就变成了重要的一环。因此,在电邮领域我们应该重视一些安全方面的细节。
知识普及
数字签名
申请到数字证书之后,使用证书的私钥,可以向任何邮件地址送数字签名邮件。通过数字签名,收件人可以验证您的身份,确认邮件是由您发出的,并且中途没有被篡改过。从而防止他人冒用您的身份发送邮件,或者中途篡改邮件。 若要发送数字签名,必须拥有证书。
通过数字签名传输的邮件,可以确认:
- 信息是由签名者发送的
- 信息在传输过程中未曾作过任何修改。 这样数字签名就可用来防止冒用别人名义发送信息;或者发出信件后又加以否认等情况发生。
邮件加密
带数字签名的电子邮件允许电子邮件的收件人验证您的身份,加密电子邮件则可以防止其他人在邮件传递过程中偷阅邮件。发送邮件时,可以只对邮件进行签名,或者只对邮件进行加密,也可以对邮件同时进行签名和加密。 仅预定的收件人可以破译文本并阅读邮件的内容。
一般来说,解密需要客户端的支持,网页上要么是加密内容要么就是空白内容,附件中包含解密用文件。
更多介绍可以查阅:http://t.cn/RtMrui2
客户端支持
邮件加密的标准有 GPG 和 S/MIME 两种,而且必须客户端支持接收也需要支持同样的标准否则不能查看邮件,能同时支持这两种的客户端并不多,而且就算能支持使用也很麻烦,不利于邮件传输。比如: outlook 支持的就是 S/MIME 标准但是不支持 GPG 标准(不算插件的情况)。苹果家的 Mail.app 就仅支持 GPG 标准。一般来说,市面上能够简单方便签到的证书都是 S/MIME 证书。
证书申请
介绍
一般来说,正常用途的电子邮件加密证书都是免费的,例如 Comodo(科摩多)、Wosign(沃通)和 StartSSL。但是呢,前两者的签发密钥文件(Key 文件)是系统生成默认集成到 pfx 文件中的,不见得有多安全,如果相关系统存在漏洞泄露密钥对用户来说是很不利的,而 StartSSL 则是自己在本地生成 key 和 csr 文件,相对来说并不麻烦,而且更加安全。
教程
没有注册过 StartSSL 账号的请看,StartSSL – 免费高兼容的 SSL 证书 附详细教程。
验证邮箱
登入后,进入 Validations Wizard 选择 Email Validation (for Client S/MIME certificate),就可以验证邮箱的归属了。
生成 Key 和 CSR 申请文件
建议不要借助各类在线生成工具,本地弄最靠谱也最踏实。Linux、macOS 用户在终端输入如下命令,Win 用户可能还需要借助 openssl 软件,具体请搜索教程。
openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr
在对应目录下就有 yourname.key 文件和 youname.csr 文件了。
申请证书
一、在 Certificates Wizard 下,选择 Client S/MIME and Authentication Certificate
二、输入需要申请证书的邮箱,也就是刚才验证的邮箱,再打开 yourname.csr 文件,将里面的内容输入在 Generated by Myself (.cer PEM format certificate)
三、点击,submit 以后,等个一会儿就可以下载了。 点击 here 下载,于是就获得 crt 文件两枚。
制作证书
一、我们解压文件后获得了如下图的两个文件,前者是根证书一般来说都有了的,不放心的可以安装一下。
二、将 你的邮箱.crt 文件和 yourname.key 文件放在一起,然后终端打开所在目录。
openssl pkcs12 -export -out 你的邮箱.pfx -inkey p yourname.key -in p 你的邮箱.crt
就会生成一个你的邮箱明明的 pfx 文件。这个就是包含了密钥信息的电子邮件所需要的证书了。
使用证书
打开对应客户端软件,我这里是 Outlook 在类似安全性设置这样的地方就可以找到并使用了。然后我们选择应用数字签名或者加密。
总结
一般实践的话,我们使用数字签名即可,保证传输过程正确即可,因为加密邮件的话对收件方有一定要求实际应用并不方便,适合统一标准的企业间实践。
发件测试以后在客户端收件是这样的:
在网页中是这样的:
从百度点进来的,支持一下,希望站长您多出一些好文章。
我的网站差不多已经放弃百度了
感觉gmail就够安全了~
其实并不麻烦,但能获得更安全的体验。 我 Gmail 也是用证书和加密的
V站观光团。博客让人很舒服大气 😀
?,谢谢
少加了“感觉”,可惜评论不能删除 0 0
我看得晕乎乎的,你这个教程看起来是给自己搭建的域名邮箱配置加密证书,后面展示的网页加密邮件效果却是红色的锁头,咋回事?
阿里家的企业邮箱就算我用 465 端口发件,Gmail 还是红锁头,我也迷惑
估计你的证书链配置错了
签名和加密与企业邮箱的通信无关, 通信是阿里方面的事情,我无法解决啊