我有一个可可项目,构建了一个MacOS应用程序。我不会将它分发到Apple商店。在MacOS上使用swift 3在登录钥匙串中安装证书
我应该在Swift 3中使用什么来在登录钥匙串中安装证书,以便始终信任,就像这个命令一样?
security add-trusted-cert -k ~/Library/Keychains/login.keychain-db ca-cert.cer
我已经创建了我的ca-cert.cer和ca-cert.pem。
我知道的授权API和我的苹果文档中看到这个方法https://developer.apple.com/documentation/security/1401659-secitemadd 和这个文档https://developer.apple.com/documentation/security/certificate_key_and_trust_services/certificates/storing_a_certificate_in_the_keychain
首先创建我的质子交换膜的DER版本
openssl x509 -outform der -in ~/ca-cert.pem -out ~/ca-cert.der
然后将下面的代码在登录钥匙串中成功安装证书,但不会被信任。
do {
let cerData = NSData(contentsOfFile: homeDirURL.path + "/ca-cert.der")
let certificate: SecCertificate? = SecCertificateCreateWithData(nil, cerData as! CFData)
let addquery: [String: Any] = [kSecClass as String: kSecClassCertificate,
kSecValueRef as String: certificate,
kSecAttrLabel as String: "My Certificate"]
let status = SecItemAdd(addquery as CFDictionary, nil)
guard status == errSecSuccess else {
print("error \(status) : " + (SecCopyErrorMessageString(status, nil) as! String))
return
}
}
catch let error as NSError {
print("Ooops! Something went wrong: \(error)")
}
我应该改变它以便始终可信吗?