【问题标题】:Qt 4.7 SSL error : "The certificate has expired”Qt 4.7 SSL 错误:“证书已过期”
【发布时间】:2011-03-16 05:51:37
【问题描述】:

我们使用 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

我们做了什么?

  1. 下载安装Win32 OpenSSL v1.0.0d Light
  2. 打开 VS2008 命令提示符
  3. 导航到“C:\Qt\4.7.1”
  4. configure.exe -debug-and-release -webkit -openssl -I C:\OpenSSL-Win32\Include -L C:\OpenSSL-Win32\Lib
  5. nmake

使用 openSSL dll 编译后出错

  1. 当我们尝试使用 webview 加载 SSL url 时,我们收到以下错误
  2. “证书已过期”
  3. 我们处理了显示为“证书已过期”错误的 networkAccessManager sslErrors(QNetworkReply*,QList<QSslError>) 事件。
  4. 我们不清楚需要哪些额外设置来解决此问题

当我在 32 位系统中测试我的代码时,OpenSSL dll 按预期工作。当我使用 64 位系统时,我收到“证书已过期”错误。我正在使用 Qt creator 32 位版本在 64 位系统中运行我的代码。我也在使用 OpenSSL 32 位版本。

【问题讨论】:

    标签: qt ssl openssl


    【解决方案1】:

    你检查过系统的日期是否正常吗?

    更新
    您似乎遇到了 32/64 位不匹配的问题。
    如果您的应用程序是 64 位,您应该使用 64 位版本的 OpenSSL。安装 64 位 OpenSSL 并确保在 Creator 中运行您的应用时它位于 PATH 中(您可以在 Projects/Run Settings/Run Environment 中将 OpenSSL 的路径添加到 PATH)

    【讨论】:

    • 这始终是首先要做的检查。看到它一遍又一遍地发生。
    • 我检查了我的系统日期。一切似乎都很好。
    【解决方案2】:

    您尚未正确部署 - Qt 在运行时无法找到 openssl DLL,这就是您收到无法调用未解析函数消息的原因。不知道为什么您会同时收到过期证书错误。

    【讨论】:

    • 我猜你错过了在我们重新编译 Qt 源代码之前发生了什么?部分问题。 在重新编译 Qt 库之前存在有关未解析函数的错误。
    • 正如 Piotr Dobrogost 指出的,未解决的错误出现在我们使用 OpenSSL 编译之前。在启动浏览器应用程序之前,我将 OpenSSL“ssleay32.dll”和“libeay32.dll”复制到 C:\Qt\4.7.1\bin。我在测试期间注意到的另一个奇怪行为是,当我使用 OpenSSL 版本“Win32 OpenSSL v1.0.0d Light”时,我得到了“证书错误”,而当我使用“Win32 OpenSSL v0.9.8r Light”时,我开始得到“否”来自 sslErrors(QNetworkReply*,QList) SIGNAL 的错误消息
    猜你喜欢
    • 1970-01-01
    • 2020-09-18
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多