我的OS X应用程序使用OpenSSL库,包括libssl和libcrypto库。它一直使用的OpenSSL库的特定版本是OS X中提供的版本,即/usr/lib/libssl.dylib
和/usr/lib/libcrypto.dylib
,目前版本为OpenSSL 0.9.8zg,我的应用程序运行正常。
由于我想在我的应用程序中使用TLS 1.2,而OS X中提供的OpenSSL库,版本为OpenSSL 0.9.8zg,不支持它,我想在版本OpenSSL 1.0.2d中使用OpenSSL库,可用在OpenSSL网站的源代码中,在我的应用程序中。
为了将我的应用程序中的OpenSSL库升级到OpenSSL 1.0.2d版本,我从源代码构建了OpenSSL库并成功编译了我的应用程序。但是,由此产生的应用程序无法正常运行,我不知道为什么。运行生成的应用程序,SSL_connect()始终返回错误,随后对SSL_get_error()的调用始终返回SSL_ERROR_SSL。这是库是动态库或静态库的情况。更奇怪的是,当我在构建我的应用程序时使用从源代码构建的OpenSSL 0.9.8zg库时,我得到了相同的结果。
任何人都有解决方案或解释我面临的问题吗?
答案 0 :(得分:0)
事实证明,我构建的OpenSSL库实际上没有问题。我遇到的问题是由证书引起的。出于某种原因,只有在使用新版本的OpenSSL时才会出现此问题。更换证书可以解决问题。