【发布时间】:2018-11-07 18:59:05
【问题描述】:
我们的应用正在安装根 CA 配置文件,我想验证它是否已安装并被用户信任。
目前这大致是我们所做的(将其修剪为核心)
SecPolicyRef policyObj = SecPolicyCreateBasicX509();
SecTrustRef trustObj;
OSStatus error = SecTrustCreateWithCertificates((__bridge CFTypeRef _Nonnull)(fullChain), policyObj, &trustObj);
SecTrustResultType result;
error = SecTrustEvaluate(trustObj, &result);
CFRelease(trustObj);
CFRelease(policyObj);
return (kSecTrustResultUnspecified == result || kSecTrustResultProceed == result);
问题是这样的,一旦安装了配置文件,结果要么是 kSecTrustResultUnspecified (iOS 10~) 要么是 kSecTrustResultProceed (iOS 11~) 但我想检查用户是否信任它(在 General->About->Trust Settings 下)
我翻遍了苹果的文档,一无所获,而且在 SecTrustEvaluate 文档中它说返回值“继续”意味着用户信任证书。
proceed— The user explicitly chose to trust a certificate in the chain (usually by clicking a button in a certificate trust panel).
有人知道如何做到这一点吗?我错过了什么?
【问题讨论】:
标签: ios objective-c ssl