Есть ли у вас какие-либо сведения о том, как изменить содержимое Security.framework/TrustStore.sqlite3
. Кажется, что iPhone использует его для хранения доверенных сертификатов CA. Я действительно хочу, чтобы iPod Touch доверял моему пользовательскому сертификату. Кроме того, кто-нибудь из вас знает приложение (win32) для редактирования файлов базы данных sqlite3 (за исключением sqliteman, это всегда срабатывает для меня).Сертификаты CA TrustStore iPhone
ответ
Я могу себе представить, что кто-то столкнется с этой проблемой, поэтому я хотел бы ответить, как она работает (Apple не хотел бы видеть, что):
первый) The iPhoneOS доверяет каждый сертификат ЦС, хранящиеся в /System/Library/Frameworks/Security.framework/TrustStore.sqlite3
2) Некоторые поля в этой базе данных содержат данные, которые я не понял, в то время как значения других, такие как «SHA1», совершенно очевидны.
3rd) На вашем iPod/iPhone есть два разных TrustStore.sqlite3. Второй находится в /private/var/Keychains/TrustStore.sqlite3. Единственное различие между ними заключается в том, что Apple доверяет только содержимому в Security.framework.
4th) Последний используется для хранения установленных пользователем сертификатов (спасибо, koregan), в то время как макет таблицы тот же.
5-й) Откройте свой самозаверяющий сертификат с помощью Почты или Safari и установите его.
6-й) Откройте /private/var/Keychains/TrustStore.sqlite3, используя ваш любимый менеджер баз данных SQLite и найдите строку в tsettings, чей «SHA1» BLOB содержит хэш вашего сертификата CA.
7-й) Извлеките всю строку и вставьте ее в таблицу настроек TrustStore.sqlite3.
8-й) Убедитесь, что вы скопировали базу данных на устройство, перезагрузите его.
9-й) К настоящему моменту он должен полностью доверять тем сертификатам, которые подписаны вашим пользовательским ЦС.
Для установки сертификатов вы можете использовать iPhone Configuration Utility.
Для второй части вашего вопроса я использовал расширение SQLite для Firefox для создания и редактирования файлов sqlite db.
Если у вас есть веб-сервер, выполненный с возможностью обслуживать до цифровых сертификатов с помощью правильного мим-типа, то Safari на iPhone будет добавить их в хранилище доверенных.
мим-типа для сертификата ЦС является «применение/х-x509-ча-CERT» (пример here)
Когда сафари загрузки этот сертификат будет как пользователь, если они хотят, чтобы доверять ему.
После того, как он был доверен, он отображается в настройках | Общий | Профили в качестве профиля конфигурации.
alt text http://o-regan.org/cacert.png
Сертификат также вставляется в БД TrustStore.sqlite3. Проверено, что, выполнив резервное копирование и извлечение БД с помощью iphone backup extractor.
Я не уверен, что теперь это означает, что ему доверяют другие цели, скажем, как корень SSL.
Надеюсь, что это поможет, я могу расследовать больше, если позволит время.
Расширение по умолчанию для `применение/х-x509-CA-cert` в`/и т.д./mime.types` является ` .crt`. – ceving 2014-11-16 15:46:47
С прошивкой 11 доверенных сертификатов расположен по адресу: /System/Library/Security/Certificates.bundle
вместо обычного местоположения: /System/Library/Frameworks/Security.framework
Спасибо за это, это ваш _ONLY_ вариант при разработке на эмуляторе. Использование утилиты конфигурации работает только для физических устройств. – RandomNickName42 2011-05-09 21:53:12