title: Associate a private key with the X509Certificate2 class in .net
body: <p>I'm working on some code that creates a X509certificate and a public/private key pair. The public key is added to the certificate and it is sent to an CA which signs it.</p>
  
  <p>The returned certificate is then accessed through the                           System.Security.Cryptography.X509Certificates.X509Certificate2 class. Now I want to use this certificate to initiate a secure connection with other clients. Therefore I use the SslStream class. To start the SSL Handshake I use this method:</p>
  
  <pre><code>server.AssociatedSslStream.AuthenticateAsServer(
                          MyCertificate,                      // Client Certificate
                          true,                               // Require Certificate from connecting Peer
                          SslProtocols.Tls,                   // Use TLS 1.0
                          false                               // check Certificate revocation
                      );
  </code></pre>
  
  <p>This method requires that the private key is associated with the certificate. Of course the certificate returned by the CA does not contain a private key. But it is stored as .key file on the harddrive. The X509Certificate2 class has a property called PrivateKey which I guess will associate a private key with the certificate, but I can't find a way to set this property.</p>
  
  <p>Is there any way I can associate the private key with the .net X509 class?</p>