Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Set ssl configuration with certificates of QNetworkRequest does not work
Forum Updated to NodeBB v4.3 + New Features

Set ssl configuration with certificates of QNetworkRequest does not work

Scheduled Pinned Locked Moved General and Desktop
sslqnetworkrequestcertificate
1 Posts 1 Posters 2.6k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    RogerLai
    wrote on 8 May 2015, 08:59 last edited by RogerLai 5 Aug 2015, 09:00
    #1

    Hello, I am using Qt 5.4.1 QtNetwork module. I want to trust a website with ssl certificate whose root CA is not in the list of system certificates of Mac OSX 10.10.3. But it seems to be not working at all, here is the code, does anyone has any idea or experience about it?

    import sys

    from PyQt4 import QtNetwork, QtCore, QtGui
    from PyQt4.QtCore import QObject, QFile, QRegExp
    from PyQt4.QtNetwork import QSslConfiguration, QSslCertificate, QSsl, QSslSocket

    appQt = QtGui.QApplication(sys.argv)

    def sslErrorHandler(reply, errorList):
    reply.ignoreSslErrors()
    for errorItem in errorList:
    print "ssl error ignored: %s" % errorItem.errorString()

    def slotReadyRead():
    print 'slotReadyRead'
    print reply.readAll()

    sslConfig = QSslConfiguration.defaultConfiguration()
    sslConfig.setProtocol(QSsl.TlsV1SslV3)
    sslConfig.setPeerVerifyDepth(1)
    sslConfig.setPeerVerifyMode(QSslSocket.VerifyPeer)
    qcerts = QSslCertificate.fromPath("/Users/rogerlai/Library/Application Support/FangCloudSync/cacert.pem", QSsl.Pem,
    QRegExp.Wildcard)

    sslConfig.setCaCertificates(qcerts)

    request = QtNetwork.QNetworkRequest(QtCore.QUrl("https://kyfw.12306.cn/otn/leftTicket/init"))
    request.setSslConfiguration(sslConfig)

    manager = QtNetwork.QNetworkAccessManager()
    QObject.connect(manager, QtCore.SIGNAL("sslErrors (QNetworkReply *, const QList<QSslError> &)"),
    sslErrorHandler)

    reply = manager.get(request)

    QObject.connect(reply, QtCore.SIGNAL("readyRead()"), slotReadyRead);

    appQt.exec_()

    1 Reply Last reply
    0

    1/1

    8 May 2015, 08:59

    • Login

    • Login or register to search.
    1 out of 1
    • First post
      1/1
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved