Client example for two way ssl authentication / tls with custom client certificate
I want connect to server with custom client certificate ssl file. How can i do this with your lib. Thank you.
If I understand you correctly, you want to add custom (trusted) certification authorities from a file.
Try the latest version. I added the possibility to use custom certification authorities here, however, it is not tested. Try for instance with: SocketClient<WSS> client("some.wss.server.com", "ca.pem"); The certification authorities has to be in pem-format.
Please give me feedback if this works or not:)
I have studied this issue abit more. You want to use a certificate for client authentication? In this case you have two files; the certificate and a private key file?
Try latest version now with for instance: SocketClient client("some.wss.server.com", true, "ca.pem", "client.crt", "client.key");
if you do not need a custom certificataion authority file: SocketClient client("some.wss.server.com", true, "", "client.crt", "client.key");
Again this is not tested, and feedback would be appreciated.
I test this later, first i want try this implementation on golang. I have CA Certaficate: ca.crt and ca.key I have Server Keys: server.crt and server.key And i have Clients keys: client.crt, client.key and ca.crt For browser i can use *.p12 or *.pfx keys Here example fo golang http://www.hydrogen18.com/blog/your-own-pki-tls-golang.html
"1 Create a Certificate Authority. This is commonly called a "CA". 2 Distribute the root certificate to all clients and servers. 3 Generate a server certificate for the server. 4 Use the CA to sign the server certificate. 5 Generate a client certificate for the client. 6 Use the CA to sign the client certificate. 7 Configure the server to trust the CA to authenticate clients. 8 Configure the client to trust the CA to authenticate servers."
I decided to moved the pem-filename parameter to the end of SocketClient constructor so its similar to the SocketServer constructor: SocketClient client("some.wss.server.com", true, "client.crt", "client.key", "ca.pem");