1

問題は次のとおりです。私のQtアプリには、HTTPSページをロードするために使用するQWebViewがあります。

私の開発マシンではすべてがうまく機能したので、テストマシンで実行しようとしています。アプリを実行しましたが、ページが読み込まれませんでした (QWebView は空白でした)。デバッグを重ねた結果、問題は SSL エラーが表示され、sslErrors() シグナルが発生することであることがわかりました。

これが私の sslErrors() 処理コードです:

void blah::sslErrors(QNetworkReply *reply, const QList<QSslError> &errors) {
  foreach(QSslError error, errors) {
    qDebug() << error.errorString() << endl;
  }
  reply->ignoreSslErrors();
}

上記のコードが出力する唯一のものは次のとおりです。

"No error"

したがって、エラーはありませんが、 を呼び出さない限りreply->ignoreSslErrors()、ページは読み込まれません (テスト マシンでは、私の開発者用コンピューターではエラーは報告されません)。は?これはバグですか?

「エラーなし」のタイプであることを確認した場合、エラーを無視しても安全ですか?

4

2 に答える 2

1

Qt がコンパイルされたバージョンと実行中のバージョンとの間の openssl のバイナリ非互換性が原因である QTBUG-28343 にヒットしている可能性があります。これは Qt 4.8.5 で修正される予定です。

http://lists.qt-project.org/pipermail/announce/2013-January/000020.html https://bugreports.qt-project.org/browse/QTBUG-28343

于 2013-02-09T16:00:03.470 に答える
0

QSslSocketは、OpenSSLX509_V_OKエラーを変換する場合にのみNoErrorSslErrorを作成します。

OpenSSLドキュメントレポート

ピア証明書が提示されなかった場合、返される結果コードはX509_V_OKです。これは、検証エラーが発生しなかったためですが、成功を示すものではありません。

証明書がピア間で正しく交換されていることを確認するには、tcpdumpまたは同様のツールを使用する必要があります。

于 2012-04-15T23:24:00.987 に答える