[英]Qt 4.7 SSL error : "The certificate has expired”
我们使用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 -IC:\\OpenSSL-Win32\\Include -LC:\\OpenSSL-Win32\\Lib
nmake
使用openSSL dll编译后出现错误
sslErrors(QNetworkReply*,QList<QSslError>)
事件,该事件显示为“证书已过期”错误。 当我在32位系统中测试代码时,OpenSSL dll可以按预期工作。 当我使用64位系统时,出现“证书过期”错误。 我正在使用Qt Creator 32位版本在64位系统中运行我的代码。 我也使用OpenSSL 32位版本。
您检查系统日期是否正确吗?
UPDATE
看来您有32/64位不匹配的问题。
如果您的应用是64位,则应使用64位版本的OpenSSL。 从Creator中运行应用程序时,安装64位OpenSSL并确保它位于PATH中(您可以在Projects / Run Settings / Run Environment中将OpenSSL的路径添加到PATH)
您尚未正确部署-Qt在运行时无法找到openssl DLL,这就是为什么您收到无法调用未解决的函数消息的原因。 但是,不知道为什么会结合使用此证书而导致过期证书错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.