【问题标题】:How to install certificate programmatically in IOS如何在 IOS 中以编程方式安装证书
【发布时间】:2020-06-12 18:53:24
【问题描述】:

我正在尝试在 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 中正确安装证书? 有没有办法提示用户将安装的证书设置为完全受信任。

【问题讨论】:

    标签: ios objective-c swift certificate x509


    【解决方案1】:

    你想做的事是不可能的。允许应用安装证书甚至将其标记为完全受信任会带来巨大的安全风险。

    您使用的代码是创建证书并将其添加到应用的钥匙串中,这与系统证书存储完全无关。

    您唯一的选择是将您的用户引导到可以安装证书的地方。我不知道您的应用将在何种环境中运行(它是企业应用吗?面向最终用户的应用?),但我假设您知道要求用户安装他们可能不信任的证书的含义。

    【讨论】:

      猜你喜欢
      • 2012-09-29
      • 2017-02-08
      • 2011-09-11
      • 2011-07-16
      • 1970-01-01
      • 2010-11-28
      • 2012-10-09
      • 2015-07-31
      • 2011-07-02
      相关资源
      最近更新 更多