title: when I need to use SSL private key while making SSL call
body: <p>Sorry if this sounds like dump question, I have been reading lot of posts and documents about SSL handshake and how SSL works. I am confused about one thing, it would be great if someone could clarify me.</p>
  
  <p>I know private keys are to be kept secret. But I have seen some GET/POST calls being made (using curl or wget) by specifying private key also in the request, 
  for eg if my server DNS is example.com and I am making a SSL call using wget:</p>
  
  <pre><code>wget --ca-cert=/etc/certs/ca.crt --certificate=/etc/certs/cert.crt --private-key=/etc/cert/private/privatekey.key --header="Content-Type: application/json" --post-data='{"key":"val"}' https://example.com/test
  </code></pre>
  
  <p>But when we open a SSL web page through browser(say, opening gmail through chrome) we never have to use the private key or rather browser is not aware of the private key. During the handshake browser gets the server public cert &amp; CA then it encrypts the random number to send back to sever to open SSL session. </p>
  
  <p>I know I am missing something silly and getting confused. Can someone tell me when would someone have to use a private key in the SSL request ?</p>