diff --git a/samples/nodejs/IoTFoundation-CA.pem b/samples/nodejs/IoTFoundation-CA.pem new file mode 100644 index 0000000..fdf98b0 --- /dev/null +++ b/samples/nodejs/IoTFoundation-CA.pem @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB +CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 +nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt +43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P +T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 +gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR +TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw +DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr +hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg +06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF +PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls +YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + diff --git a/samples/nodejs/IoTFoundation.pem b/samples/nodejs/IoTFoundation.pem new file mode 100644 index 0000000..84d31b1 --- /dev/null +++ b/samples/nodejs/IoTFoundation.pem @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +MIIFqzCCBJOgAwIBAgIQCxjQE+z7NGL2+H7H3H33EDANBgkqhkiG9w0BAQsFADBN +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E +aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTQwOTIyMDAwMDAwWhcN +MTcxMTI5MTIwMDAwWjCBwjELMAkGA1UEBhMCR0IxEjAQBgNVBAgTCUhhbXBzaGly +ZTETMBEGA1UEBxMKV2luY2hlc3RlcjEuMCwGA1UEChMlSW50ZXJuYXRpb25hbCBC +dXNpbmVzcyBNYWNoaW5lcyBDb3JwLjEmMCQGA1UECxMdSW50ZXJuZXQgb2YgVGhp +bmdzIEZvdW5kYXRpb24xMjAwBgNVBAMMKSoubWVzc2FnaW5nLmludGVybmV0b2Z0 +aGluZ3MuaWJtY2xvdWQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtkFprFEGn/3D4PpShvthi1RySonpvPL5S6/33rP9HH+pZRThnTRd9kTQWGQr +zS+bpGKwqIX6G+FixY1G08CDa+/JejLT1BiGAXCYY54/OCg7WvBr8feZ9mnK9GtB +XArF0u2TPdFTObXlE9ZBj5BDx9+5CS3Y0Grc9/Yg7S19JulhH37ZRxj1K0iCLJnU +NWuDwmXtCAvv/nMQ00upmNX4po+Jfo17bqmyGrvZWdJpFquWQlC2lzUkQ3clzc9k +wfu/mfHdgS55IloU4CwF+9nAkBSDhX8YQeJmZf3KDMIXoAhplrpAid221QNDKEfT +oE5ZGJcN9zhdrb+ZFInu7w66eQIDAQABo4ICDzCCAgswHwYDVR0jBBgwFoAUD4Bh +HIIxYdUvKOeNRji0LOHG2eIwHQYDVR0OBBYEFF6uJ2Mig7JY8gVIz2+cxymckEho +MF0GA1UdEQRWMFSCKSoubWVzc2FnaW5nLmludGVybmV0b2Z0aGluZ3MuaWJtY2xv +dWQuY29tgidtZXNzYWdpbmcuaW50ZXJuZXRvZnRoaW5ncy5pYm1jbG91ZC5jb20w +DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBr +BgNVHR8EZDBiMC+gLaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vc3NjYS1z +aGEyLWcyLmNybDAvoC2gK4YpaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL3NzY2Et +c2hhMi1nMi5jcmwwQgYDVR0gBDswOTA3BglghkgBhv1sAQEwKjAoBggrBgEFBQcC +ARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzB8BggrBgEFBQcBAQRwMG4w +JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBGBggrBgEFBQcw +AoY6aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMlNlY3Vy +ZVNlcnZlckNBLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBE +sTL/E2gWP8nWd5wor5sJpVD4nAnTluR2fSqoBnTi4DlxY+5ujpHYSQIo8f8rp1Fr +ADzy63x3woCNZXtWf5fs1uAJUHi53HK5Y9UH6nFBv4qwnSUiH+8JE+xBWVGT6bl0 +uM8miFZVo7r4Jpuc1I13B9oHqxtP2ayQDyMvtcENOv9JvqZk9TEvp7IJgdtmYE4d +BsbKsHRC0m3S1tfXac9cuKA1rND21buWis9nV0cEabwT5XM4YpSITVeIdII6kvZ8 +SREOxEG3urjy2xU8RxDDiMTcAYjNwSNshfZPyY7TijFDl4ZXpioHuQ+N3NxtZKzg +51QXrsnRosOX+sa4iSXx +-----END CERTIFICATE----- + diff --git a/samples/nodejs/ibm-iot-quickstart.js b/samples/nodejs/ibm-iot-quickstart.js index f7cf52b..1331484 100644 --- a/samples/nodejs/ibm-iot-quickstart.js +++ b/samples/nodejs/ibm-iot-quickstart.js @@ -16,9 +16,11 @@ var mqtt = require('mqtt'); var fs = require('fs'); var configFile = "./device.cfg"; +var caCerts = ["./IoTFoundation.pem", "IoTFoundation-CA.pem"]; - +var qs_mode = true; var port = 1883; +var s_port = 8883; var broker = "quickstart.messaging.internetofthings.ibmcloud.com"; var topic; var client; @@ -69,13 +71,20 @@ require('getmac').getMac(function(err, macAddress) { macAddress = config.id; broker = organization + ".messaging.internetofthings.ibmcloud.com"; + qs_mode = false; } else { console.log("No configuration file found, connecting to the quickstart servcice."); } options.clientId = "d:" + organization + ":" + deviceType + ":" + macAddress; - client = mqtt.createClient(port, broker, options); + if (qs_mode) { + client = mqtt.createClient(port, broker, options); + } else { + options.ca = caCerts; + options.rejectUnauthorized = true; + client = mqtt.createSecureClient(s_port, broker, options); + } topic = "iot-2/evt/status/fmt/json"; var interval = setInterval(sendMessage,1000);