OpenSSL和Apple Keychain集成

我们正在使用一个应该在Windows和Mac上运行的多平台应用程序。 我们的应用程序基于OpenSSL作为SSL和相关的供应商。 它使用客户端证书建立安全连接并识别最终用户。

我们希望使用Windows和Mac本机证书存储来确保最大的安全性。 Openssl有一个与Windows证书存储(CAPI引擎)交互的引擎。 但是,我们没有设法为Mac的Keychain找到这样的解决方案。

OpenSSL和Apple的Keychain之间是否有集成?

如果没有,你的建议是什么?

除了处理客户端证书之外,您还需要validation服务器证书。

为此,您必须为OpenSSL提供一个回调,该回调使用Mac OS X安全框架来validation服务器证书。 使用OpenSSL函数SSL_CTX_set_cert_verify_callback设置自定义证书validation回调。 您的回调必须将OpenSSL证书转换为SecCertificateRef ,为SSL连接创建SecTrustRef ,创建SecTrustRef并对其进行评估。 有关更多详细信息,请参阅证书,密钥和信任服务参考 。

我认为“最简单”的解决方案是为CSSM编写OpenSSL引擎(CDSA的API, Mac OS X使用的安全架构 )。 你应该在openssl-dev邮件列表上询问是否有人有兴趣帮助(并且可能已经开始)。