Example program that uses HTTPS to send JSON data to Axeda's cloud using a cellular device.
Dependencies: mbed
Fork of Axeda_IoT_Connection_Example by
certs.h@3:677bdaf965ac, 2015-03-25 (annotated)
- Committer:
- Vanger
- Date:
- Wed Mar 25 18:19:55 2015 +0000
- Revision:
- 3:677bdaf965ac
- Parent:
- 1:2d299b96dc79
mtsas library updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Vanger | 1:2d299b96dc79 | 1 | /** Any non-root certificates will have no effect on the SSL client, but will |
Vanger | 1:2d299b96dc79 | 2 | * use up extra space for their allocation into the certificate list. |
Vanger | 1:2d299b96dc79 | 3 | * Methods for obtaining the Root CA certificate(s) for a website: |
Vanger | 1:2d299b96dc79 | 4 | * 1. Open a browser to the target website using HTTPS. |
Vanger | 1:2d299b96dc79 | 5 | * (These instructions are for Chrome, but should be similar for other browsers) |
Vanger | 1:2d299b96dc79 | 6 | * Click on the lock icon at the beginning of the url, select the "connection" tab, |
Vanger | 1:2d299b96dc79 | 7 | * and click the "certificate information" hyperlink. The browser will open a new window |
Vanger | 1:2d299b96dc79 | 8 | * labeled "Certificate". Switch to the "Certification Path" tab, click the certificate |
Vanger | 1:2d299b96dc79 | 9 | * closest to the top of the window, then click "View Certificate". This will open a new |
Vanger | 1:2d299b96dc79 | 10 | * window labeled "Certificate" again. This time, click on the "Details" tab, then click |
Vanger | 1:2d299b96dc79 | 11 | * "Copy to File". This will open a "Certificate Export Wizard". Click next, and choose the |
Vanger | 1:2d299b96dc79 | 12 | * "Base-64 encoded X.509 (.CER)" option, then click next. Choose the name and location where |
Vanger | 1:2d299b96dc79 | 13 | * you want to save the PEM formatted certificate, then click next, then finish. Open the file |
Vanger | 1:2d299b96dc79 | 14 | * that was created and copy-paste the certificate into this certs.h file. Format the certificate |
Vanger | 1:2d299b96dc79 | 15 | * data so that each line begins with " and is appended with \r\n" |
Vanger | 1:2d299b96dc79 | 16 | * |
Vanger | 1:2d299b96dc79 | 17 | * 2. Go to https://www.bluessl.com/en/ssltest and enter the website for which you wish to get the root CA |
Vanger | 1:2d299b96dc79 | 18 | * certificates. Click the [Click here to download the public part of this certificate] button located |
Vanger | 1:2d299b96dc79 | 19 | * underneath the certificates that label themselves as Root, or Root CA. The root CA certificate should |
Vanger | 1:2d299b96dc79 | 20 | * self-signed, otherwise it is not the root CA certificate. Take the downloaded file, copy the data |
Vanger | 1:2d299b96dc79 | 21 | * into this certs.h file, and format the data so that each line begins with " and is appended with \r\n" |
Vanger | 1:2d299b96dc79 | 22 | * |
Vanger | 1:2d299b96dc79 | 23 | * 3. Using openssl on linux: (Make sure you have openssl installed.) Run the command: openssl s_client |
Vanger | 1:2d299b96dc79 | 24 | * -showcerts -connect <host>:<port> -CApath /etc/ssl/certs |
Vanger | 1:2d299b96dc79 | 25 | * Where <host> is the host name (www.google.com for example), and port is the port on which the connection |
Vanger | 1:2d299b96dc79 | 26 | * will be made (usually 443). When the connection is made with the remote server, the last certificate(s) |
Vanger | 1:2d299b96dc79 | 27 | * listed will be the Root CA certificate(s). Merely copy-paste those certificates into this certs.h file |
Vanger | 1:2d299b96dc79 | 28 | * and format them with each line beginning with " and ending with \r\n" |
Vanger | 1:2d299b96dc79 | 29 | */ |
Vanger | 1:2d299b96dc79 | 30 | |
Vanger | 1:2d299b96dc79 | 31 | //Root Certificates |
Vanger | 1:2d299b96dc79 | 32 | const char CERTIFICATE1[1237] = |
Vanger | 1:2d299b96dc79 | 33 | |
Vanger | 1:2d299b96dc79 | 34 | //Nucleus-connect.axeda.com |
Vanger | 1:2d299b96dc79 | 35 | //GeoTrustGlobalCA from GeoTrust website |
Vanger | 1:2d299b96dc79 | 36 | "-----BEGIN CERTIFICATE-----\r\n" |
Vanger | 1:2d299b96dc79 | 37 | "MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT\r\n" |
Vanger | 1:2d299b96dc79 | 38 | "MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i\r\n" |
Vanger | 1:2d299b96dc79 | 39 | "YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG\r\n" |
Vanger | 1:2d299b96dc79 | 40 | "EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg\r\n" |
Vanger | 1:2d299b96dc79 | 41 | "R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9\r\n" |
Vanger | 1:2d299b96dc79 | 42 | "9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq\r\n" |
Vanger | 1:2d299b96dc79 | 43 | "fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv\r\n" |
Vanger | 1:2d299b96dc79 | 44 | "iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU\r\n" |
Vanger | 1:2d299b96dc79 | 45 | "1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+\r\n" |
Vanger | 1:2d299b96dc79 | 46 | "bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW\r\n" |
Vanger | 1:2d299b96dc79 | 47 | "MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA\r\n" |
Vanger | 1:2d299b96dc79 | 48 | "ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l\r\n" |
Vanger | 1:2d299b96dc79 | 49 | "uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn\r\n" |
Vanger | 1:2d299b96dc79 | 50 | "Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS\r\n" |
Vanger | 1:2d299b96dc79 | 51 | "tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF\r\n" |
Vanger | 1:2d299b96dc79 | 52 | "PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un\r\n" |
Vanger | 1:2d299b96dc79 | 53 | "hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV\r\n" |
Vanger | 1:2d299b96dc79 | 54 | "5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==\r\n" |
Vanger | 1:2d299b96dc79 | 55 | "-----END CERTIFICATE-----\r\n"; |
Vanger | 1:2d299b96dc79 | 56 | const char CERTIFICATE2[849] = |
Vanger | 1:2d299b96dc79 | 57 | //VeriSignClass3PublicPrimaryCA |
Vanger | 1:2d299b96dc79 | 58 | "-----BEGIN CERTIFICATE-----\r\n" |
Vanger | 1:2d299b96dc79 | 59 | "MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG\r\n" |
Vanger | 1:2d299b96dc79 | 60 | "A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz\r\n" |
Vanger | 1:2d299b96dc79 | 61 | "cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2\r\n" |
Vanger | 1:2d299b96dc79 | 62 | "MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV\r\n" |
Vanger | 1:2d299b96dc79 | 63 | "BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt\r\n" |
Vanger | 1:2d299b96dc79 | 64 | "YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN\r\n" |
Vanger | 1:2d299b96dc79 | 65 | "ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE\r\n" |
Vanger | 1:2d299b96dc79 | 66 | "BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is\r\n" |
Vanger | 1:2d299b96dc79 | 67 | "I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G\r\n" |
Vanger | 1:2d299b96dc79 | 68 | "CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i\r\n" |
Vanger | 1:2d299b96dc79 | 69 | "2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ\r\n" |
Vanger | 1:2d299b96dc79 | 70 | "2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ\r\n" |
Vanger | 1:2d299b96dc79 | 71 | "-----END CERTIFICATE-----\r\n"; |
Vanger | 1:2d299b96dc79 | 72 | const char CERTIFICATE3[977] = |
Vanger | 1:2d299b96dc79 | 73 | //Axeda Root CA Certificate |
Vanger | 1:2d299b96dc79 | 74 | "-----BEGIN CERTIFICATE-----\r\n" |
Vanger | 1:2d299b96dc79 | 75 | "MIICmTCCAgICAQAwDQYJKoZIhvcNAQEEBQAwgZQxCzAJBgNVBAYTAlVTMRYwFAYD\r\n" |
Vanger | 1:2d299b96dc79 | 76 | "VQQIEw1NYXNzYWNodXNldHRzMRIwEAYDVQQHEwlNYW5zZmllbGQxHDAaBgNVBAoT\r\n" |
Vanger | 1:2d299b96dc79 | 77 | "E0F4ZWRhIFN5c3RlbXMsIEluYy4xGTAXBgNVBAMTEEF4ZWRhIFN5c3RlbXMgQ0Ex\r\n" |
Vanger | 1:2d299b96dc79 | 78 | "IDAeBgkqhkiG9w0BCQEWEXN1cHBvcnRAYXhlZGEuY29tMB4XDTAzMDExMDE3MzUy\r\n" |
Vanger | 1:2d299b96dc79 | 79 | "N1oXDTEzMDEwNzE3MzUyN1owgZQxCzAJBgNVBAYTAlVTMRYwFAYDVQQIEw1NYXNz\r\n" |
Vanger | 1:2d299b96dc79 | 80 | "YWNodXNldHRzMRIwEAYDVQQHEwlNYW5zZmllbGQxHDAaBgNVBAoTE0F4ZWRhIFN5\r\n" |
Vanger | 1:2d299b96dc79 | 81 | "c3RlbXMsIEluYy4xGTAXBgNVBAMTEEF4ZWRhIFN5c3RlbXMgQ0ExIDAeBgkqhkiG\r\n" |
Vanger | 1:2d299b96dc79 | 82 | "9w0BCQEWEXN1cHBvcnRAYXhlZGEuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\r\n" |
Vanger | 1:2d299b96dc79 | 83 | "iQKBgQD0VtQ82SdSI4QTwIWIXTya91GJ4IFZMwY3eXVkg3jpBwGGQFAk2yOAhITZ\r\n" |
Vanger | 1:2d299b96dc79 | 84 | "nQkZn5/JEifRJTvLhqq7AtFqkKG0bKza3jLFhMDh4q7nn5en1wWvMWQM8hSA7cBV\r\n" |
Vanger | 1:2d299b96dc79 | 85 | "DYbtsRObM8b7TiC8ZlxhN/6fZFiLyzX431Ppx2nSjyfpHK3oSQIDAQABMA0GCSqG\r\n" |
Vanger | 1:2d299b96dc79 | 86 | "SIb3DQEBBAUAA4GBAGav/orW9wQ7TvUiJV5IcpckJKQJrTd0M2XBu+iPwJ52+4pP\r\n" |
Vanger | 1:2d299b96dc79 | 87 | "SzJJ7zMdhUTEkxuWegz1L25DewZdnMBddtSK9/AcB6l7Ezqwfblr6cuLNduO9+MU\r\n" |
Vanger | 1:2d299b96dc79 | 88 | "29I/wb5gbC2vSppa/clLB7Cw/b7ypS+bTTIU9RbbOrtuKtyGGN3YCvXGKUgB\r\n" |
Vanger | 1:2d299b96dc79 | 89 | "-----END CERTIFICATE-----\r\n" |
Vanger | 1:2d299b96dc79 | 90 | ; |