我们使用OpenSSL库编译了QT代码。但是我们无法加载HTTPS网页。 SSL错误处理程序抛出“证书已过期”异常。我们使用http://orkut.com来测试SSL问题。
在我们重新编译Qt源之前发生了什么?
以下错误,当我们尝试启动HTTPS网址时
QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
QSslSocket: cannot call unresolved function ERR_error_string
我们做了什么?
configure.exe -debug-and-release -webkit -openssl -I C:\OpenSSL-Win32\Include -L C:\OpenSSL-Win32\Lib
nmake
错误
sslErrors(QNetworkReply*,QList<QSslError>)
事件,该事件显示为“证书已过期”错误。当我在32位系统中测试我的代码时,OpenSSL dll按预期工作。当我使用64位系统时,我收到“证书已过期”错误。我正在使用Qt creator 32位版本在64位系统中运行我的代码。我也在使用OpenSSL 32位版本。
答案 0 :(得分:1)
您是否检查过系统的日期是否合适?
<强>更新强>
看起来你有32/64位不匹配的问题
如果你的应用程序是64位,你应该使用64位版本的OpenSSL。在Creator中运行应用程序时安装64位OpenSSL并确保它在PATH中(您可以在项目/运行设置/运行环境中添加OpenSSL到PATH的路径)
答案 1 :(得分:0)
你没有正确部署 - Qt无法在运行时找到openssl DLL,这就是你无法调用未解析的函数消息的原因。不知道为什么你会得到过期的证书错误与此相结合。