你们是否有任何线索如何改变内容Security.framework/TrustStore.sqlite3
.似乎iPhone使用它来存储可信的CA证书.我真的希望我的iPod touch能够信任我的自定义证书.除此之外,你是否有人知道编辑sqlite3数据库文件的应用程序(win32)(除了sqliteman,这个总是为我崩溃).
如果您的网络服务器配置为使用正确的mime类型提供数字证书,则iPhone上的Safari会将它们添加到信任存储区.
CA证书的mime-type是"application/x-x509-ca-cert"(此处示例)
当safari下载此证书时,如果他们想要信任它,它将作为用户.
一旦被信任,它就会显示在"设置"中 一般| 配置文件部分作为配置文件.
alt text http://o-regan.org/cacert.png
证书也会插入到TrustStore.sqlite3数据库中.通过使用iphone备份提取器进行备份和解压缩来验证.
我不确定现在是否意味着它被信任用于其他目的,比如作为SSL根目录.
希望这有帮助,如果时间允许,我可能会调查更多.
我可以想象其他人会遇到这个问题,因此我想回答它是如何工作的(Apple不会喜欢这样):
1)iPhoneOS信任存储在/System/Library/Frameworks/Security.framework/TrustStore.sqlite3中的每个CA证书
2)该数据库中的某些字段包含我不理解的数据,而其他字母如"SHA1"则非常明显.
3)iPod/iPhone上有两个不同的TrustStore.sqlite3.第二个位于/private/var/Keychains/TrustStore.sqlite3.它们之间的唯一区别是Apple只信任Security.framework中的内容.
4)后者用于存储用户安装的证书(谢谢,koregan),而表格布局是相同的.
5)使用Mail或Safari打开自签名证书并进行安装.
6)使用您喜欢的SQLite数据库管理器打开/private/var/Keychains/TrustStore.sqlite3,并查找其"SHA1"BLOB包含CA证书哈希的tsettings中的行.
7)提取整行并将其插入到TrustStore.sqlite3的tsettings表中.
8)确保将数据库复制回设备,重新启动它.
9)到现在它应该完全信任由您的自定义CA签署的证书.
您可以使用iPhone配置实用程序来安装证书.