2011-05-15 55 views
5

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

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

OpenSSL和Apple Keychain之间是否有整合?

如果不是,您有什么建议?

+0

我们只是偶然发现了这个链接(http://www.mentby.com/wim-lewis-2/using-cdsacssm-modules-as-openssl-engines.html)某种openssl引擎的实现,苹果电脑。我们正在检查它是否满足我们的需求。 – Guy 2011-06-16 11:54:35

回答

0

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

为此,您必须为OpenSSL提供一个使用Mac OS X安全框架验证服务器证书的回调。使用OpenSSL功能SSL_CTX_set_cert_verify_callback设置您的自定义证书验证回调。您的回拨必须将OpenSSL证书转换为SecCertificateRef,为SSL连接创建SecPolicyRef,创建SecTrustRef并对其进行评估。有关更多详细信息,请参见Certificate, Key, and Trust Services Reference

0

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