gpt4 book ai didi

macos - SSL 握手时出现 OS X Keychain 访问提示

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:27 25 4
gpt4 key购买 nike

我正在尝试在服务器模式下实现一个使用 SSL 保护的套接字。使用的证书需要是自签名的,以编程方式生成一次并存储到钥匙串(keychain)中。

对于套接字功能,我使用 CocoaAsyncSocket ( https://github.com/robbiehanson/CocoaAsyncSocket ),它在内部使用 SSLContext 和 native 安全框架中的相关内容。对于自签名证书生成,我使用 MyUtilities ( https://github.com/snej/MYUtilities/blob/master/MYAnonymousIdentity.h ) 中的 MYGetOrCreateAnonymousIdentity 函数

在 swift 中保护连接的代码如下所示:

var error: NSError? = nil
if let identity = MYGetOrCreateAnonymousIdentity("MyIdentity", 60.0 * 60.0 * 24.0 * 365.0 * 10.0, &error)?.takeUnretainedValue() {

var certificateOpt: SecCertificate? = nil
SecIdentityCopyCertificate(identity, &certificateOpt)

// Secure the socket
let settings: [String:NSObject] = [
kCFStreamSSLCertificates as String: self.sslCertificates as NSArray,
kCFStreamSSLIsServer as String: NSNumber(value: true)
]
socket.startTLS(settings)

}
else {
Swift.print("Failed to get certificates for SSL: \(error)")
return nil
}

代码似乎工作正常:自签名证书已创建并保存在钥匙串(keychain)中,套接字上的安全通信似乎也工作正常。

问题是在 SSL 握手期间(在 SSLHandshake 函数内的某处)显示钥匙串(keychain)提示,询问是否允许使用 key "<key>"用于签名。通过查看钥匙串(keychain),"<key>" key 似乎是其他 key ,而不是我的程序创建的 key 。

那为什么 "<key>"此处使用了 key ,如何避免向用户显示提示?

最佳答案

嗯,经过一些尝试,删除并重新创建证书,问题似乎已经消失了。 key 链中的证书可能以某种方式损坏或配置错误

关于macos - SSL 握手时出现 OS X Keychain 访问提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39377156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com