2008-12-07 202 views
9

您是否有任何线索如何更改Security.framework/TrustStore.sqlite3的内容。看起来好像iPhone使用它来存储可信的CA证书。我非常希望我的iPod touch能够信任我的自定义证书。除此之外,你们有没有人知道一个应用程序(win32)来编辑sqlite3数据库文件(除了sqliteman,这个文件总是会崩溃)。iPhone TrustStore CA证书

回答

6

我可以想像,别人会遇到这个问题,所以我想回答它是如何工作(苹果公司将不希望看到):

月1日)的信托基金的iPhoneOS存储在每个CA证书/System/Library/Frameworks/Security.framework/TrustStore.sqlite3

2)该数据库中的某些字段包含我无法理解的数据,而其他的含义如“SHA1”非常明显。

3rd)iPod/iPhone上有两种不同的TrustStore.sqlite3s。第二个位于/private/var/Keychains/TrustStore.sqlite3。这两者之间的唯一区别是Apple只信任Security.framework中的内容。

4th)后者用于存储用户安装的证书(谢谢koregan),而表格布局是相同的。

5th)使用Mail或Safari打开您的自签名证书并安装它。

6)使用您最喜欢的SQLite数据库管理器打开/private/var/Keychains/TrustStore.sqlite3并查找其“SHA1”BLOB包含您的CA证书散列的tsettings中的行。

7)提取整行并将其插入到TrustStore.sqlite3的tsettings表中。

第8)确保将数据库复制回设备,然后重新启动它。现在它应该完全信任由您的自定义CA签名的那些证书。

+0

感谢您的支持,这是您在仿真器上开发时的_ONLY_选项。使用配置实用程序仅适用于物理设备。 – RandomNickName42 2011-05-09 21:53:12

3

对于问题的第二部分,我已经使用Firefox的SQLite扩展来创建和编辑sqlite数据库文件。

addons.mozilla.org

7

如果您配置服务与正确的MIME类型数字证书的Web服务器,然后在Safari浏览器在iPhone将它们添加到信任存储。

MIME类型的CA证书是“应用程序/ x-X509-CA证书”(例如here

当狩猎下载该证书将作为用户,如果他们要信任它。

一旦信任它,就会出现在设置|一般|配置文件部分作为配置文件。

alt text http://o-regan.org/cacert.png

证书也被插入到TrustStore.sqlite3分贝。通过执行备份并提取数据库iphone backup extractor进行验证。

我不确定现在是否意味着它被信任用于其他目的,比如SSL根。

希望这可以帮助,如果时间允许,我可能会调查更多。

+0

用于在`/ etc`应用程序/ x-X509-CA-cert`的默认扩展/ mime.types`是` .crt`。 – ceving 2014-11-16 15:46:47

0

由于iOS的11信任库位于:/System/Library/Security/Certificates.bundle而不是通常的位置:/System/Library/Frameworks/Security.framework