Как установить сертификат программно в IOS - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь установить сертификат программно в IOS. Я успешно добавил сертификат, используя следующий код:

let rootCert = SecCertificateCreateWithData(kCFAllocatorDefault,data_array as NSData)
var err: OSStatus = noErr
let dict = NSDictionary.init(objects: [kSecClassCertificate, rootCert!], forKeys: [kSecClass as! NSCopying, kSecValueRef as! NSCopying])
err = SecItemAdd(dict, nil)
if(err == noErr) {
    NSLog("Install root certificate success");
} else if( err == errSecDuplicateItem ) {
    NSLog("duplicate root certificate entry");
} else {
    NSLog("install root certificate failure");
}

Но я не вижу свой сертификат в Настройки доверия сертификата . Я ожидаю увидеть мой сертификат в настройках с недоверенным статусом, затем разрешите пользователю доверять моему сертификату.

Это правильный способ добавить сертификат? Если нет, то как правильно установить сертификаты в IOS? Есть ли способ предложить пользователю установить установленный сертификат как полностью доверенный.

1 Ответ

0 голосов
/ 02 марта 2020

То, что вы хотите сделать, невозможно. Разрешение приложениям устанавливать сертификаты и даже помечать их как полностью доверенные - это огромный риск для безопасности.

Код, который вы используете, заключается в создании и добавлении сертификата в цепочку ключей приложения, которая полностью не связана с сертификатом системы. store.

Ваш единственный вариант - направить ваших пользователей куда-нибудь, где они смогут установить сертификат. Я не знаю, в каком контексте будет работать ваше приложение (это корпоративное приложение? Приложение для конечных пользователей?), Но я предполагаю, что вы знаете, как просить пользователей устанавливать сертификаты, которым они могут не доверять.

...