Сертификаты iPhone TrustStore CA - PullRequest
       28

Сертификаты iPhone TrustStore CA

9 голосов
/ 07 декабря 2008

Кто-нибудь из вас знает, как изменить содержимое Security.framework/TrustStore.sqlite3. Кажется, что iPhone использует его для хранения доверенных сертификатов CA. Я действительно хочу, чтобы мой iPod touch доверял моему пользовательскому сертификату. Кроме того, кто-нибудь из вас знает приложение (win32) для редактирования файлов базы данных sqlite3 (кроме sqliteman, оно всегда сбоит для меня).

Ответы [ 5 ]

7 голосов
/ 12 декабря 2008

Если у вас есть веб-сервер, настроенный для обслуживания цифровых сертификатов с правильным MIME-типом, Safari на iPhone добавит их в доверенное хранилище.

MIME-типом сертификата CA является «application / x-x509-ca-cert» (пример здесь )

Когда Safari загружает этот сертификат, он становится пользователем, если хочет доверять ему.

После того, как доверенный он появляется в настройках | Генерал | Раздел Профили как Профиль конфигурации.

альтернативный текст http://o -regan.org / cacert.png

Сертификат также вставляется в базу данных TrustStore.sqlite3. Подтвердите это, выполнив резервное копирование и распаковав БД с помощью iphone Backup Extractor .

Я не уверен, означает ли это, что теперь ему доверяют для других целей, скажем, как корень SSL.

Надеюсь, это поможет, я мог бы расследовать больше, если позволит время.

6 голосов
/ 18 февраля 2009

Я могу представить, что кто-то еще столкнется с этой проблемой, поэтому я хотел бы ответить, как она работает (Apple не понравится это видеть):

1-й) iPhoneOS доверяет каждому сертификату CA, хранящемуся в /System/Library/Frameworks/Security.framework/TrustStore.sqlite3

2nd) Некоторые поля в этой базе данных содержат данные, которые я не понимал, в то время как другие значения, такие как "SHA1", совершенно очевидны.

3-ий) На вашем iPod / iPhone есть два разных TrustStore.sqlite3. Второй находится по адресу /private/var/Keychains/TrustStore.sqlite3. Единственное различие между ними заключается в том, что Apple доверяет только содержимое в Security.framework.

4-й) Последний используется для хранения установленных пользователем сертификатов (спасибо, koregan), в то время как формат таблицы такой же.

5th) Откройте самозаверяющий сертификат с помощью Mail или Safari и установите его.

6th) Откройте /private/var/Keychains/TrustStore.sqlite3 с помощью вашего любимого менеджера баз данных SQLite и найдите строку в tsettings, чей BLOB-объект "SHA1" содержит хэш вашего сертификата CA.

7th) Извлеките всю строку и вставьте ее в таблицу tsettings TrustStore.sqlite3.

8th) Убедитесь, что вы скопировали базу данных обратно на устройство, перезагрузите ее.

9th) К настоящему времени он должен полностью доверять тем сертификатам, которые подписаны вашим пользовательским CA.

5 голосов
/ 09 декабря 2008

Вы можете использовать Утилита настройки iPhone для установки сертификатов.

3 голосов
/ 12 декабря 2008

Во второй части вашего вопроса я использовал расширение SQLite для Firefox для создания и редактирования файлов sqlite db.

addons.mozilla.org

0 голосов
/ 12 июля 2017

Начиная с iOS 11, TrustStore находится по адресу: /System/Library/Security/Certificates.bundle вместо обычного местоположения: /System/Library/Frameworks/Security.framework

...