繁体   English   中英

在OSX 10.5.8上的Qt:“为此目的不信任根CA证书”

[英]Qt on OSX 10.5.8: “The root CA certificate is not trusted for this purpose”

我有一个Qt应用程序成功向OSX 10.7上的我们的网站发出HTTPS请求,但在10.5.8上使用QSslError :: errorString失败“根CA证书不被信任用于此目的”。

我正在设置根证书:

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证书不可信任”。 这是我所期待的。

是什么让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:我在https://github.com/cdemel/SO_examples/tree/master/soqtssl上放置了一个示例,使用不同的网站(Twitter)和根证书,具有相同的行为。

好吧,这已经很长时间没有答案了,所以我将把我不知情的解决方案作为答案:

将应用程序链接到基于10.5.8构建的Qt库。 这对我有用,但我不能告诉你为什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM