Skip to content

Commit f73cf26

Browse files
committed
Watson IoT CA Cert
Signed-off-by: John Walicki <[email protected]>
1 parent 6ae4c75 commit f73cf26

File tree

2 files changed

+78
-2
lines changed

2 files changed

+78
-2
lines changed

firmware/WatsonIoT/data/messaging.pem

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh
3+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
4+
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
5+
QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
6+
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
7+
U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
8+
ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
9+
nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
10+
KpPDkC55gIDvEwRqFDu1m5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f
11+
/ld0Uzs1gN2ujkSYs58O09rg1/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX
12+
kujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0
13+
/RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8C
14+
AQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY
15+
aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6
16+
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1
17+
oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
18+
QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
19+
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh
20+
xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
21+
CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl
22+
5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA
23+
8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC
24+
2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
25+
c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
26+
j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz
27+
-----END CERTIFICATE-----
28+
-----BEGIN CERTIFICATE-----
29+
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
30+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
31+
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
32+
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
33+
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
34+
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
35+
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
36+
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
37+
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
38+
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
39+
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
40+
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
41+
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
42+
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
43+
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
44+
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
45+
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
46+
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
47+
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
48+
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
49+
-----END CERTIFICATE-----
50+

firmware/WatsonIoT/src/main.cpp

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@ char deviceID[13];
4848

4949
// Store the Download Server PEM and Digicert CA and Root CA in SPIFFS
5050
// If an OTA firmware upgrade is required, the binary is downloaded from a secure server
51-
#define DOWNLOAD_CERT_PEM_FILE "/mybluemix-net-chain.pem"
52-
//#define DOWNLOAD_CERT_PEM_FILE "/cf-workers-proxy-9e9.pages.dev-chain.pem"
51+
#define DOWNLOAD_CERT_PEM_FILE "/mybluemix-net-chain.pem"
52+
//#define DOWNLOAD_CERT_PEM_FILE "/cf-workers-proxy-9e9.pages.dev-chain.pem"
53+
#define WATSON_IOT_PLATFORM_CA_PEM "/messaging.pem"
5354

5455
// Timezone info
5556
#define TZ_OFFSET -5 // (EST) Hours timezone offset to GMT (without daylight saving time)
@@ -754,6 +755,31 @@ void setup() {
754755
sprintf(MQTT_HOST,MQTT_LOCALBROKER); // Enter the IP address of the MQTT broker on your local subnet
755756
#else
756757
sprintf(MQTT_HOST,"%s.messaging.internetofthings.ibmcloud.com",MQTT_ORGID); // Centrally managed
758+
759+
if( SPIFFS.begin(true) ) {
760+
Serial.printf("Opening Watson IoT Root CA PEM Chain : %s\r\n", WATSON_IOT_PLATFORM_CA_PEM);
761+
File pemfile = SPIFFS.open( WATSON_IOT_PLATFORM_CA_PEM );
762+
if( pemfile ) {
763+
char *RootCAPemChain = nullptr;
764+
size_t pemSize = pemfile.size();
765+
RootCAPemChain = (char *)malloc(pemSize);
766+
767+
if( pemSize != pemfile.readBytes(RootCAPemChain, pemSize) ) {
768+
Serial.printf("Reading %s pem server certificate chain failed.\r\n",WATSON_IOT_PLATFORM_CA_PEM);
769+
} else {
770+
Serial.printf("Read %s Root CA server certificate chain\r\n",WATSON_IOT_PLATFORM_CA_PEM);
771+
//Serial.println( RootCAPemChain );
772+
wifiClient.setCACert(RootCAPemChain);
773+
}
774+
free( RootCAPemChain );
775+
} else {
776+
Serial.println("Failed to open server pem chain.");
777+
}
778+
pemfile.close();
779+
} else {
780+
Serial.println("An error has occurred while mounting SPIFFS");
781+
}
782+
757783
#endif
758784

759785
char mqttparams[100]; // Allocate a buffer large enough for this string ~95 chars

0 commit comments

Comments
 (0)