Well, here is a tidbit of information which is quite interesting: When I comment out the following from the HTTPS client setup code, I don't seem to "lose" the server connection:
wiced_tls_init_root_ca_certificates( server_root_ca_certificate, strlen(server_root_ca_certificate) );
The command above sets-up the certificate (root CA) for the client: By removing it, the client loses the ability to verify the server certificate. But the TLS still works from a functional point of view.
Has anyone tried both server and client concurrently and found if the server root CA could be init'd?
I came across the document "Cypress WICED Studio API Reference Guide". It allows the conflict to be explained: When running a client and server over TLS, installing the root certificates(s) using wiced_tls_init_root_ca_certificates() causes two effects:
1) For the client: "RootCA certificates are ... loaded and verified against the peer server certificate"
2) For the server: "RootCA certiﬁcates are ... loaded and verified against the peer client certificate"
Hence, my test is failing because the server is now attempting to verify against the peer client certificate. The peer client happens to be a browser.
I have verified that this is not a problem if I update the client and server certificates to be signed by the same CA. Then, they both work together!