我正在嘗試向證書自簽名的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