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. Loading an SSL certificate located in code
QtWS25 Last Chance

Loading an SSL certificate located in code

Scheduled Pinned Locked Moved General and Desktop
qsslcertificatessl
3 Posts 2 Posters 3.9k Views
  • 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
    RudolfVonKrugstein
    wrote on 20 May 2015, 13:18 last edited by
    #1

    Hey,

    I want to make load a QsslCertificate which I have copied from the .pem file into the code. It looks like this:

          const char * certData = "-----BEGIN CERTIFICATE-----\
     dY32TQ==\
    (...)\
     -----END CERTIFICATE-----";
        QSslCertificate cert(certData);
        if (cert.isNull()) {
            QMessageBox::information(0,"Certificate is null.", certData);
        }
    

    But cert.isNull() returns true. How do I need to reformat my certificate data for it to load correctly?

    Thanks!
    Nathan

    1 Reply Last reply
    0
    • R Offline
      R Offline
      RudolfVonKrugstein
      wrote on 21 May 2015, 10:37 last edited by
      #2

      Well, I managed to load my certificate using

      QList<QSslCertificate>  certs = QSslCertificate::fromPath(":/certificate.pem");
      

      And adding certificate.pem to the resources.

      1 Reply Last reply
      0
      • C Offline
        C Offline
        cybercatalyst
        wrote on 21 May 2015, 17:48 last edited by cybercatalyst
        #3

        Please this code from me where I did exactly this:
        https://github.com/cybercatalyst/qtwebserver/blob/master/tcp/tcpmultithreadedserver.cpp#L141

        void MultithreadedServer::setDefaultSslConfiguration() {
        // Set a default SSL configuration just to have it running out of the
        // box. Only for development purposes, never distribute an application
        // that relies on SSL with the default configuration set. You can
        // generate your own key and self-signed certificate:
        //
        // $ openssl req -x509 -newkey rsa:2048 -keyout server.key -nodes -days 365 -out server.crt
        
        QSslConfiguration sslConfiguration;
        QByteArray defaultKey =
            "-----BEGIN PRIVATE KEY-----\n"
            "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQdRrom1g/MsJh\n"
            "bfwVBZH+oxuGeIBO3jeNWs2bjpDmjtEtMz66LfFVrjuggt0UeNFb1Ve3tYIVq4Wj\n"
            "gmHYUOB44KCzVqJrd1mZdDKukdvoalJyh5f5/kqLdNGzrfjl5fmtK4jy76xM0oV4\n"
            "aZlj8eC4+odrS9HLHfBylDIeSXPWtThFw02IGiQALbtW8cqHSOXhucPAwiNFELVd\n"
            "jjFLa0buQSWq3WSZnroLwOXxfd2dtIoDIn319wTRFPAHWQDqlIuvefYvNzel65yY\n"
            "ZwoomIOrcxfN7IczLxkryD1uZpr4u2aWpHpz+mB7WXhPW82H6qT205e25iDbiZUQ\n"
            "+2UJWBHBAgMBAAECggEBAKF7Fe066ZGLcKio2q4uMnpfP+NbVYnC+qW1wbDPL9Bq\n"
            "sf+hwuXW0SzeW7JrrXc+YHATRHA7WxoOVOflCIbZoAoDeHl0kz1Mp0wIh3pT41aX\n"
            "hmbSQxiVtIlzZT8bdcQh8tgC8YO/xml8a4hrxTd3F+4zpNOpWEtQVgNsaaasn9+h\n"
            "/I/8uQ6oYkNISbnrs7u2fkFAw2/RbyZ6E2Dr9fMiDVUSa5ppFFHjfkgzbGA56Mtg\n"
            "0DdpxWMhICVMwlTI23zmjIAssyJG6xfCQfll9XbsiPAx9/uwAMIFPaUaWBzEUmhh\n"
            "L+/7hESQ7DGIfKxUqtiyvT53EuupxUxkcr0useZY5UECgYEA6wis5xcEo4eBk5o4\n"
            "IYcdZ93LrgwKtWj6e50sVs4NgCgsDWbH99IhNIxwQnCJ02O/aacbFV0d+jB9Jh+M\n"
            "NKTmqDxoe+EY2WJ+sR/YZ9VZwoHFwqubL1BzroX8FBN363tjicfFA+o3bSb4OXDC\n"
            "PINFzSLH8cLhFOo3UFiZf9I9ZZcCgYEA4w2FDGzhnpZPToiT/nwf55Ze2lJsPWlP\n"
            "8XydHoIWDIbUd1LnxBnoGZF1pefexoIy8zesGBfjHC7t6tC/4zy2oqECiP6ESACN\n"
            "8yhSDG+iegTU59LOk+blserR52c2vNGOR7RFbAyZeg3XXwlvQOpaquIP6tc7vkv1\n"
            "FijDcWm3nmcCgYAUAu0Vz/PpKIRz2NGmqSZrzYqmCwhuYb3SAJPh4DFuE/2MNpAY\n"
            "HaAOJVb5kTNq+Dc3+65mp0MCJlbBhDYf1Vp+QIZ05bmD6Mr4sclvLc8yrHH2HT5d\n"
            "TPBMj8PiwbWYKy1ScdvodWy6snK4EU24cUTkLm3vu7QGX9rN0H1hULlBiQKBgQC5\n"
            "rgW/ao98HJoQtFqrBCEnR+6cBkmkUypgZzMqjuGvLtg0GOWWlkUcG7uliKDDoBhA\n"
            "lKe1MFu3YZ2JqVszXyRQjPHAzLurEmEDmFa4+tZZiPf/+YKcq3fubwVngx3dflYn\n"
            "x4H6YbdlfEpD2zhTUxQAqUyxFYEzF3T/wShL6FOUQwKBgA2qSGUvxHcyWw8jnQ2g\n"
            "BbwtU75LCvTrSuIQ8DJIVt5+W9iseNi+q51w6hTAUleJ+4X7RDrSisQucbDAY+Fg\n"
            "Tyz0YVk4+WR0G7ZYAjLJBe7KpzpDZ4mI8yhfYBMhH+Rtkzk96ECezEve8L3llUqD\n"
            "s7+8TR6cFYhHQQH3DQ5BKdt0\n"
            "-----END PRIVATE KEY-----";
        
        QByteArray defaultCertificate =
            "-----BEGIN CERTIFICATE-----\n"
            "MIIDhzCCAm+gAwIBAgIJAP9LmloP2P0tMA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV\n"
            "BAYTAkRFMRMwEQYDVQQIDApTb21lLVN0YXRlMSAwHgYDVQQKDBdRdFdlYlNlcnZl\n"
            "ciBEZXZlbG9wbWVudDEUMBIGA1UEAwwLRGV2ZWxvcG1lbnQwHhcNMTUwNDIxMDYw\n"
            "MTE4WhcNNDUwNDEzMDYwMTE4WjBaMQswCQYDVQQGEwJERTETMBEGA1UECAwKU29t\n"
            "ZS1TdGF0ZTEgMB4GA1UECgwXUXRXZWJTZXJ2ZXIgRGV2ZWxvcG1lbnQxFDASBgNV\n"
            "BAMMC0RldmVsb3BtZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n"
            "0HUa6JtYPzLCYW38FQWR/qMbhniATt43jVrNm46Q5o7RLTM+ui3xVa47oILdFHjR\n"
            "W9VXt7WCFauFo4Jh2FDgeOCgs1aia3dZmXQyrpHb6GpScoeX+f5Ki3TRs6345eX5\n"
            "rSuI8u+sTNKFeGmZY/HguPqHa0vRyx3wcpQyHklz1rU4RcNNiBokAC27VvHKh0jl\n"
            "4bnDwMIjRRC1XY4xS2tG7kElqt1kmZ66C8Dl8X3dnbSKAyJ99fcE0RTwB1kA6pSL\n"
            "r3n2Lzc3peucmGcKKJiDq3MXzeyHMy8ZK8g9bmaa+LtmlqR6c/pge1l4T1vNh+qk\n"
            "9tOXtuYg24mVEPtlCVgRwQIDAQABo1AwTjAdBgNVHQ4EFgQUm4DLVsXhMy8J7Us4\n"
            "QoTdTgVS9CEwHwYDVR0jBBgwFoAUm4DLVsXhMy8J7Us4QoTdTgVS9CEwDAYDVR0T\n"
            "BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAmxPOPLbq0EBBWrboNfGtD1OTnchy\n"
            "kBlhrSG+2gLNS3lfiphOZ+qtUGNTgewAk+nR5sraw4uFG8+6oQmNFS35zlbzWhgC\n"
            "dveQaT4CNtXCpAevRCbhhuDxzU0W0Dtenf3xFBC2wUWbAwxGZuklyA5ohl9+1By7\n"
            "YG5dPYYsgoeQl9t5yg5orh39kcrrz/exNlPH71qZO6QrPLlaRs0q4S4Yj33hgm/1\n"
            "XAILf9ZtcTElTRhSHC81bZz2HG84nP39WJCe4hH081cdkAMm7W2fzPTzHUWWRW34\n"
            "PMB0Ipp7R7CrztyxyaaDo1S3ozEpqvVT0KI65dWLt8ZsggcKxP6P5aeCBQ==\n"
            "-----END CERTIFICATE-----";
        
        QSslKey sslKey(defaultKey, QSsl::Rsa);
        sslConfiguration.setPrivateKey(sslKey);
        
        QSslCertificate sslCertificate(defaultCertificate);
        sslConfiguration.setLocalCertificate(sslCertificate);
        
        sslConfiguration.setProtocol(QSsl::AnyProtocol);
        setSslConfiguration(sslConfiguration);
        }
        
        1 Reply Last reply
        0

        2/3

        21 May 2015, 10:37

        • Login

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