Seite 1 von 1

SSL mit ClientCertification

Verfasst: 18. Oktober 2010 14:48
von derdani
Hallo QT-Community,
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);
Allerdings gibt die sslKey->isNull() - Prüfung null zurück und ich kann mir nicht erklären warum.

Ich hoffe es kann mir jemand helfen :-)

Viele Grüße, Dani.