你们中有谁知道如何修改Security.framework/TrustStore.sqlite3的内容。看起来好像iPhone使用它来存储受信任的CA证书。我真的希望我的iPod touch能够信任我的自定义证书。除此之外,你们谁知道一个编辑sqlite3数据库文件的应用程序(win32) (除了sqliteman,这个对我来说总是崩溃)。
发布于 2009-02-18 16:10:43
我可以想象其他人会遇到这个问题,因此我想回答它是如何工作的(Apple不会愿意看到这一点):
1) iPhoneOS信任存储在/System/Library/Frameworks/Security.framework/TrustStore.sqlite3中的每个CA证书
2)数据库中的一些字段包含我不理解的数据,而另一些字段的含义很明显,比如"SHA1“。
3)你的iPod/iPhone上有两个不同的TrustStore.sqlite3s。第二个文件位于/private/var/Keychains/TrustStore.sqlite3。它们之间唯一的区别是,苹果只信任Security.framework中的内容。
4)后者用于存储用户安装的证书(感谢koregan),而表布局是相同的。
5)使用Mail或Safari打开您的自签名证书并安装。
6)使用您喜欢的SQLite数据库管理器打开/private/var/Keychains/TrustStore.sqlite3,并在tsettings中查找其"SHA1“BLOB包含CA证书的散列的行。
7)提取整行并将其插入TrustStore.sqlite3的tsettings表中。
8)确保已将数据库复制回设备,然后重新启动。
9)到目前为止,它应该完全信任那些由您的自定义CA签名的证书。
发布于 2008-12-12 00:47:40
如果您将them服务器配置为提供具有正确mime类型的数字证书,则iPhone上的Safari会将其添加到信任存储区。
CA证书的mime类型是“应用程序/x-x509-ca-cert”(示例here)
当safari下载此证书时,如果用户想要信任它,它将以用户的身份进行下载。
一旦被信任,它将作为配置配置文件出现在设置|常规|配置文件部分。
alt text http://o-regan.org/cacert.png
证书也被插入到TrustStore.sqlite3数据库中。已通过执行备份并使用iphone backup extractor提取数据库来验证。
我不确定这是否意味着它被信任用于其他目的,例如作为SSL根目录。
希望这能有所帮助,如果时间允许,我可能会调查更多。
发布于 2008-12-09 04:04:15
您可以使用iPhone Configuration Utility安装证书。
https://stackoverflow.com/questions/347690
复制相似问题