FairEmail S/MIME 企业级加密配置
S/MIME 和 OpenPGP 有什么不同
S/MIME(Secure / Multipurpose Internet Mail Extensions)和 OpenPGP 都是端到端邮件加密标准,但它们的底层技术体系完全不同:
| 维度 | S/MIME | OpenPGP |
|---|---|---|
| 证书体系 | 基于 X.509 公钥基础设施(PKI),证书由权威机构颁发 | 基于独立 PGP 密钥对,无中央权威 |
| 密钥获取 | 从企业 IT 或商业 CA 获取数字证书 | 从公钥服务器或联系人处获取公钥 |
| 适用场景 | 企业环境、政府机构、合规要求高的行业 | 个人用户、开源社区、无中心组织的场景 |
| 兼容性 | Outlook、Thunderbird 等企业客户端原生支持 | 需要 PGP 插件(GPGTools、OpenKeychain) |
| FairEmail 支持 | Pro 功能内置(不需要外部应用) | 依赖 OpenKeychain 等外部 PGP 应用 |
简单理解:S/MIME 是企业世界的加密标准,OpenPGP 是自由世界的加密标准。如果你所在公司有 IT 部门管理证书体系,用 S/MIME;如果你自己管理密钥、和个人联系人加密通信,用 OpenPGP。
FairEmail 为什么 S/MIME 是 Pro 功能
S/MIME 需要实现完整的 X.509 证书解析、证书链验证、CRL/OCSP 证书吊销检查等复杂的密码学逻辑。OpenPGP 可以委托给 OpenKeychain,但 S/MIME 没有可靠的 Android 开源库可以直接集成,所以 FairEmail 开发者选择在 App 内部自己实现 S/MIME 支持——这部分开发量较大,因此列为 Pro 功能。
获取 S/MIME 数字证书
使用 S/MIME 的第一步是拿到自己的数字证书(包含签名证书和加密证书),常见获取方式:
方式一:企业 IT 部门颁发
企业环境中,IT 管理员通过内部 PKI 基础设施(如 Microsoft AD CS)为员工颁发证书。你通常需要:
- 访问企业证书注册页面(通常是内网地址)
- 提交 CSR(证书签名请求)——FairEmail 可以帮你生成 CSR
- 等待审批后下载证书
- 将证书导入 Android「安全存储」
方式二:商业 CA 购买
购买个人 S/MIME 证书的常见 CA:
- Sectigo / Comodo
- DigiCert
- GlobalSign
部分 CA 提供 1 年免费证书试用(用于个人非商业用途)。
方式三:自签证书
也可以自己生成自签证书(Self-signed certificate),但自签证书无法通过签名验证——别人收到你的自签证书签名的邮件时,客户端会警告签名者不可信。适合内部小圈子测试用,不适合正式通信。
在 FairEmail 中配置 S/MIME
第一步:导入证书到 Android 安全存储
FairEmail 通过 Android Keystore 系统访问你的 S/MIME 证书,因此证书必须先安装到 Android 系统级安全存储中:
- 获取到证书文件(通常是
.p12或.pfx格式的 PFX/PKCS#12 包) - 用文件管理器找到证书文件 → 点击 → 系统引导安装
- 安装过程中会要求设置证书存储密码(这个密码用于保护你设备上的证书)
- 安装完成后,在 Android 设置 → 安全 → 加密凭据 → 用户凭据中应该能看到你的证书
第二步:在 FairEmail 中绑定证书
- FairEmail 设置 → 手动设置 → 身份 → 选择某个身份
- 找到「S/MIME」区域
- FairEmail 会自动扫描 Android 安全存储中与该身份邮箱地址匹配的证书
- 选择匹配到的签名证书和加密证书
- 保存
第三步:启用 S/MIME 签名 / 加密
在写信界面,右上角锁图标 → 选择 S/MIME 签名或 S/MIME 加密 → 发送。FairEmail 会调用 Android Keystore 中的证书完成操作。
接收和验证 S/MIME 邮件
FairEmail 接收到 S/MIME 签名或加密邮件时:
- 验证签名:用发件人证书的公钥验证签名,检查证书是否有效、是否过期、是否被吊销。验证结果(有效 / 无效 / 不可信)显示在邮件头区域
- 解密邮件:从 Android 安全存储中用你对应的加密证书私钥解密。解密失败会显示错误原因(如「没有匹配的解密证书」「证书已过期」)
CSR 生成与证书请求
FairEmail Pro 还可以帮你生成证书签名请求(CSR):
- 设置 → 手动设置 → 身份 → 选择身份 → S/MIME 区域 → 「生成 CSR」
- FairEmail 会提示你输入:私钥长度(默认 2048 或 4096 位)、CSR 口令(保护 CSR)
- 生成后,CSR 会保存到 Android 安全存储
- 把 CSR 内容(一个
.pem文件的文本)提交给证书颁发方
CSR 生成后对应的私钥也会自动存储到 Android Keystore——不要丢失这个私钥。如果丢失,即使拿到了证书也无法使用。
S/MIME 的安全注意事项
证书过期
S/MIME 证书有有效期(通常 1~2 年)。FairEmail 在证书即将过期前会在账户设置中提醒你。过期后的证书不能用于签名或加密——邮件会发送失败或无法解密。
私钥保护
S/MIME 证书的私钥存储在 Android 的硬件安全模块(Android Keystore)中——这是 Android 平台上最安全的存储方式(即使设备 root 也很难提取)。但前提是:
- 设备必须设置锁屏密码 / PIN / 生物识别
- 不要将证书私钥备份到云盘(尤其是明文备份)
吊销检查
FairEmail 可以配置 CRL(证书吊销列表)或 OCSP(在线证书状态协议)来检查发件人的证书是否已被吊销。建议开启——如果发件人证书被盗用,CA 会吊销它,FairEmail 会自动识别并拒绝签名验证。
OpenPGP vs S/MIME 选哪个
你在企业环境,或对方也在企业环境,需要合规的加密通信 → S/MIME(FairEmail Pro 原生支持)
你是个人用户,想和世界各地的联系人加密通信,没有统一的证书管理 → OpenPGP(需要安装 OpenKeychain)
两者不冲突——你可以同时在 FairEmail 中配置 S/MIME 证书和 OpenKeychain,根据收件人支持哪种加密方式来选择使用哪一种。