我正在尝试向证书自签名的web服务发送休息请求。目前,我正在创建一个请求,设置url和auth。键作为标题。然后我告诉回复忽略这个SSL错误:当我运行它QSslError:证书是自签名的,而且不受信任
QSslError error(QSslError::SelfSignedCertificate);
QList<QSslError> expectedSslErrors;
expectedSslErrors.append(error);
QNetworkReply *reply = _accessManager.put(request, ""); // no requestbody
reply->ignoreSslErrors(expectedSslErrors);
我得到以下SSL错误:
9 - The certificate is self-signed, and untrusted
其次是网络错误NR 6:
Request failed with message: SSL handshake failed
目前我忽略了所有的错误,因为它似乎是唯一可行的。感觉脏。
如果有人知道我在做什么错,我会很感激!
编辑:
更改为:
QList<QSslError> expectedSslErrors;
expectedSslErrors.append(QSslError::SelfSignedCertificate);
expectedSslErrors.append(QSslError::CertificateUntrusted);
reply->ignoreSslErrors(expectedSslErrors);
但仍然得到同样的错误...
提供证书是什么意思?它是一个base64编码的字符串,它是auth的一部分。头。不确定如何将其作为证书提供 – chikuba 2012-04-11 01:35:35
@chikuba您所描述的看起来更像是基本身份验证,而不是证书。该文档显示了如何将证书从文件[这里](http://qt-project.org/doc/qt-4.8/qnetworkreply.html#ignoreSslErrors-2)传递给'QSslError',并获得文件,请在服务器上使用浏览器,当您点击挂锁时,您应该可以下载/导出证书。 – alexisdm 2012-04-11 01:46:51
没有证书,挂锁交叉。该网站不受信任。认为当您使用自签名时,您并不需要证书 – chikuba 2012-04-11 01:51:05