4

OSX 10.7で当社のWebサイトにHTTPS要求を行うことに成功したが、10.5.8でQSslError::errorString「ルートCA証明書はこの目的では信頼されていません」で失敗するQtアプリケーションがあります。

ルート証明書を次のように設定しています:

QFile certFile1(":/Equifax_Secure_Certificate_Authority.pem.txt");
QSslCertificate cert1(&certFile1, QSsl::Pem);
certList.append(cert1);

QSslConfiguration sslConfig(request.sslConfiguration());
sslConfig.setCaCertificates(certList);
request.setSslConfiguration(sslConfig);

他の証明書を設定すると、OSX 10.5.8と10.7の両方で、「ローカルで検索された証明書の発行者証明書が見つかりませんでした」と「ルートCA証明書はこの目的で信頼されていません」という2つのエラー文字列が表示されます。これは私が期待することです。

Qtが10.5.8でのみEquifax証明書を信頼しない理由は何ですか?

編集:考えられる手がかり(または赤いニシン):それぞれのWireSharkトレースを見ると、10.5.8クライアントは、クライアントhelloハンドシェイクにサーバー名表示またはセッションチケットTLS拡張機能を含めていません。

編集2:10.5.8で32ビットとしてビルドすることは機能します。また、10.7でユニバーサル(32ビットおよび64ビットIntel)としてビルドし、10.5.8で実行し、10.5.8でビルドされた32ビットQtライブラリに対してリンクします。

編集3:同じ動作で別のWebサイト(Twitter)とルート証明書を使用して、https://github.com/cdemel/SO_examples/tree/master/soqtsslに例を配置しました。

4

1 に答える 1

0

まあ、これはあまりにも長い間答えられていないので、答えとして私の無知な解決策を与えるつもりです:

10.5.8 でビルドされた Qt ライブラリへのアプリ リンクを用意します。これは私にとってはうまくいきましたが、その理由はわかりません。

于 2013-05-02T22:17:04.910 に答える