@@ -13,38 +13,38 @@ const char* password = "your-password"; // your network password
13
13
14
14
const char * server = " www.howsmyssl.com" ; // Server URL
15
15
16
- // www.howsmyssl.com CA certificate, to verify the server
17
- // change it to your server CA certificate
16
+ // www.howsmyssl.com root certificate authority , to verify the server
17
+ // change it to your server root CA
18
18
// SHA1 fingerprint is broken now!
19
19
20
- const char * test_ca_cert = \
21
- " -----BEGIN CERTIFICATE-----\n " \
22
- " MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/\n " \
23
- " MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n " \
24
- " DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow\n " \
25
- " SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT\n " \
26
- " GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC\n " \
27
- " AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF\n " \
28
- " q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8\n " \
29
- " SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0\n " \
30
- " Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA\n " \
31
- " a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj\n " \
32
- " /PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T\n " \
33
- " AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG\n " \
34
- " CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv\n " \
35
- " bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k\n " \
36
- " c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw\n " \
37
- " VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC\n " \
38
- " ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz\n " \
39
- " MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu\n " \
40
- " Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF\n " \
41
- " AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo\n " \
42
- " uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/\n " \
43
- " wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu\n " \
44
- " X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG\n " \
45
- " PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6\n " \
46
- " KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==\n " \
47
- " -----END CERTIFICATE-----\n " ;
20
+ const char * test_root_ca = \
21
+ " -----BEGIN CERTIFICATE-----\n " \
22
+ " MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/\n " \
23
+ " MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n " \
24
+ " DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow\n " \
25
+ " SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT\n " \
26
+ " GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC\n " \
27
+ " AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF\n " \
28
+ " q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8\n " \
29
+ " SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0\n " \
30
+ " Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA\n " \
31
+ " a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj\n " \
32
+ " /PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T\n " \
33
+ " AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG\n " \
34
+ " CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv\n " \
35
+ " bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k\n " \
36
+ " c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw\n " \
37
+ " VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC\n " \
38
+ " ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz\n " \
39
+ " MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu\n " \
40
+ " Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF\n " \
41
+ " AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo\n " \
42
+ " uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/\n " \
43
+ " wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu\n " \
44
+ " X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG\n " \
45
+ " PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6\n " \
46
+ " KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==\n " \
47
+ " -----END CERTIFICATE-----\n " ;
48
48
49
49
// You can use x.509 client certificates if you want
50
50
// const char* test_client_key = ""; //to verify the client
@@ -71,14 +71,14 @@ void setup() {
71
71
72
72
Serial.print (" Connected to " );
73
73
Serial.println (ssid);
74
-
75
- client.setCACert (test_ca_cert );
76
- // client.setCertificate(certificateBuff ); // for client verification
77
- // client.setPrivateKey(privateKeyBuff ); // for client verification
74
+
75
+ client.setCACert (test_root_ca );
76
+ // client.setCertificate(test_client_key ); // for client verification
77
+ // client.setPrivateKey(test_client_cert ); // for client verification
78
78
79
79
Serial.println (" \n Starting connection to server..." );
80
80
if (!client.connect (server, 443 ))
81
- Serial.println (" Connection failed!" );
81
+ Serial.println (" Connection failed!" );
82
82
else {
83
83
Serial.println (" Connected to server!" );
84
84
// Make a HTTP request:
@@ -87,27 +87,24 @@ void setup() {
87
87
client.println (" Connection: close" );
88
88
client.println ();
89
89
90
- Serial.print (" Waiting for response " ); // WiFiClientSecure uses a non blocking implementation
91
- while (!client.available ()){
92
- delay (50 ); //
93
- Serial.print (" ." );
94
- }
90
+ while (client.connected ()) {
91
+ String line = client.readStringUntil (' \n ' );
92
+ if (line == " \r " ) {
93
+ Serial.println (" headers received" );
94
+ break ;
95
+ }
96
+ }
95
97
// if there are incoming bytes available
96
98
// from the server, read them and print them:
97
99
while (client.available ()) {
98
100
char c = client.read ();
99
101
Serial.write (c);
100
102
}
101
103
102
- // if the server's disconnected, stop the client:
103
- if (!client.connected ()) {
104
- Serial.println ();
105
- Serial.println (" disconnecting from server." );
106
- client.stop ();
107
- }
104
+ client.stop ();
108
105
}
109
106
}
110
107
111
108
void loop () {
112
109
// do nothing
113
- }
110
+ }
0 commit comments