ich versuche einen Webservice von einer URL aufzurufen. Über http funktioniert das ganze blendet, über SSL mit Basic(username, passwort) auch, möchte ich mich aber per Client-Zertifikat authentifizieren, bekomme ich jedes Mal die Meldung "SSL Handshake failed".
Ich habe schon diverse Seiten zu dem Thema gelesen, komme aber absolut nicht weiter.
Das ist mein Code, den ich bisher hab:
Code: Alles auswählen
static const char *REQUEST_URL = "myUrl";
QSslConfiguration *conf = new QSslConfiguration();
QString key = <mykey>
QFile certFile("Pfad zu meinem Zertifikat");
certFile.close();
certFile.open(QIODevice::ReadOnly);
QSslCertificate cert(&certFile, QSsl::Pem);
conf->setPeerVerifyMode(QSslSocket::QueryPeer);
QSslKey *sslKey = new QSslKey(key.toAscii(), QSsl::Rsa, QSsl::Pem,QSsl::PrivateKey);
if(sslKey->isNull())
cout << "isNull";
conf->setPrivateKey(*sslKey);
conf->setCaCertificates(QList<QSslCertificate>() << cert);;
conf->setProtocol(QSsl::SslV3);
QNetworkRequest request;
request.setSslConfiguration(*conf);
request.setUrl(QUrl(REQUEST_URL));
QNetworkReply *reply = m_network.get(request);
Ich hoffe es kann mir jemand helfen
Viele Grüße, Dani.