苹果早晚要完

以前因为强国网的关系,使用一些翻墙服务需要授信自签名证书。以前老版本的系统用户自行安装的第三方证书是可以在 Settings->General->Profiles 中直接删除掉的,但在iOS 10之后这个页面被取消了,设置中没有地方可以删除,只有开关选项决定是否信任。

Certificate Trust Settings

现在2018年了,Let’s Encrypt免费服务已经普及,大家也都纷纷淘汰了不靠谱的自签名证书,结果从旧系统升级上来还带着以前安装的废弃证书却不让删除。虽然不影响实际使用,但是每次看到这些没用的垃圾还在心里实在难受。还好苹果的设计师虽然无赖,但还没绝情到想办法堵死路子,程序员嘛,诸事不决问SO,果然有人问有人答,自己动手把这破事解决了。

操作步骤

  1. 备份iPhone系统数据到Mac上,然后使用iMazing查看备份数据
  2. 在备份的KeychainDomain目录中找到TrustStore.sqlite3数据文件,点击下方的Copy to Mac将其导出到本地某个目录(这里假设是在 ~/TrustStore.sqlite3

Export TrustStore SQLite file

  1. 使用 ADVTrustStore 项目导出证书~/foo.crt

     ./iosCertTrustManager.py -t ~/TrustStore.sqlite3 -e ~/foo.crt
     /Users/yee/TrustStore.sqlite3
       subject= C = US, ST = CO, L = Denver, O = foo.com, CN = foo.com CA, emailAddress = [email protected]
         Export certificate [y/N] y
       subject= C = XX, L = Default City, O = Default Company Ltd, CN = 1.2.3.4
         Export certificate [y/N] y
    
  2. 使用Airdrop或者电子邮件把导出的证书crt文件挨个发送到iOS设备并安装

  3. Settings->General->Profiles 再次删除

  4. Done,“Certificate Trust Settings” 里面已经干净了


原帖