如何在iOS设备使用S/MIME邮件加密
了解了一下 S/MIME , 发现在 iOS 设备上比 PGP 更好用,自带的邮件 App 就支持相关功能。
S/MIME 相较于主要区别是 CA 颁发证书来确保可信度,而 PGP 靠信任网络,那么如果自签 S/MIME 证书+信任网络,结合易用性与安全性,体验更佳。
01 获取S/MIME证书
01-1 方式1:使用CA签名的免费证书
Actalis免费个人证书
https://extrassl.actalis.it/portal/uapub/freemail?lang=en
01-2 方式2:创建自签名 S/MIME 证书
# 为CA生成RSA密钥 openssl genrsa -aes256 -out ca.key 8192
# 为CA创建自签名证书 openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -extensions v3_ca
# 为个人电子邮件生成RSA密钥 openssl genrsa -aes256 -out smime_name.key 8192
# 创建个人电子邮件证书 openssl req -new -key smime_name.key -out smime_name.csr
# 创建smime.cnf,iOS使用证书必须要有此步骤,内容如下,subjectAltName可添加多个email [smime] keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = email:name@outlook.com, email:xxxxx extendedKeyUsage = emailProtection
# 使用CA对证书进行签名,注意此处如果要签多个证书,-set_serial 1要变更 openssl x509 -req -days 36500 -in smime_name.csr -CA ca.crt -CAkey ca.key -set_serial 1 -out smime_name.crt -addtrust emailProtection -addreject clientAuth -addreject serverAuth -trustout -extfile smime.cnf -extensions smime
# 检查证书是否ok,其中必需包含S/MIME signing = Yes、S/MIME encryption = Yes、X509v3 Key Usage = Digital、Signature, Non Repudiation, Key Encipherment、X509v3 Extended Key Usage = E-mail Protection、Trusted Uses = E-mail Protection openssl x509 -in smime_name.crt -purpose -noout -text
# 将证书打包为 PKCS12 格式 openssl pkcs12 -export -in smime_name.crt -inkey smime_name.key -out smime_name.p12
02 导入证书
将ca.crt、smime_name.p12邮件发给iOS设备,点击附件导入、信任。可参考03中的链接操作。
03 邮件设置
进入邮件设置,启用签名及加密,参考Apple官方指导、这个链接或者这个链接
04 参考
Using our own certificate authority for business email encryption
Creating Certificate Authorities and self-signed SSL certificates
Create Self-Signed S/MIME Certificates
Can I create my own S/MIME certificate for email encryption?
Creating SSL certificates for S/MIME email encryption with OpenSSL
Issue Your Own Self-Signed S/MIME Certs with OpenSSL