iPhone TrustStore CA证书

时间:2008-12-07 15:42:36

标签: iphone certificate x509

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

6 个答案:

答案 0 :(得分:7)

如果您的网络服务器配置为使用正确的mime类型提供数字证书,那么iPhone上的Safari会将它们添加到信任存储区。

CA证书的mime-type是“application / x-x509-ca-cert”(示例here

当safari下载此证书时,如果他们想要信任它,它将作为用户。

一旦被信任,它就会显示在“设置”中一般|配置文件部分作为配置文件。

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

证书也会插入到TrustStore.sqlite3数据库中。通过执行备份并使用iphone backup extractor提取数据库来验证。

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

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

答案 1 :(得分:6)

我可以想象其他人会遇到这个问题,因此我想回答一下它是如何运作的(Apple不会那么看):

1st)iPhoneOS信任存储在/System/Library/Frameworks/Security.framework/TrustStore.sqlite3中的每个CA证书

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

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

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

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

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

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

8)确保将数据库复制回设备,然后重新启动它。

9)到现在为止,它应该完全信任那些由您的自定义CA签名的证书。

答案 2 :(得分:5)

您可以使用iPhone Configuration Utility安装证书。

答案 3 :(得分:3)

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

addons.mozilla.org

答案 4 :(得分:0)

自iOS 11以来,TrustStore位于:/System/Library/Security/Certificates.bundle而不是通常的位置:/System/Library/Frameworks/Security.framework

答案 5 :(得分:0)

要在iOS 13(模拟器或电话/平板)中安装自己的CA证书

  1. 将您的CA证书放置在网站上,确保其扩展名为.crt(例如MyCA.crt)。
  2. 在模拟器中转到Safari
  3. 下载证书,在出现提示时选择“是”以安装“配置文件”
  4. 转到模拟器中的设置 常规>个人资料> [您的证书],然后单击安装
  5. 转到模拟器中的设置 常规>信息>受信任的证书 找到您的证书,然后将开关切换到“开”。

您的CA现在是受信任的。在较旧版本的模拟器中,您可以将证书拖到模拟器上,但似乎不再起作用。

请记住,Apple限制了证书的验证期限,因此请不要使它们的有效期为10年,而应选择较短的时间。

如果第一步失败,则可能是因为您的Web服务器无法识别.crt扩展名。像Apache这样的普通Web服务器应该可以正常工作。

  • @Apple:我希望模拟器中的开发人员选项中的设置仅接受不安全的证书,但老实说,这是多年来许多年来第一次在iOS上比Android 10上更容易(AFAIK)安装自己的CA!