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
Forum Updated to NodeBB v4.3 + New Features

Loading an SSL certificate located in code

Scheduled Pinned Locked Moved General and Desktop
qsslcertificatessl
3 Posts 2 Posters 3.9k Views 2 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
    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

        1/3

        20 May 2015, 13:18

        • Login

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