SSL mit ClientCertification

Alles rund um die Programmierung mit Qt
Antworten
derdani

SSL mit ClientCertification

Beitrag 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.
Antworten