Question

I know this is a probably an easy question, but I am starting to get lost. Is the private key I use to sign my assemblies for strong names (within visual studio project properties) any way related/needed to generate a CSR?

Was it helpful?

Solution

A CSR (Certificate Signing request) is a request, typically sent to a certificate authority, for the generation of a digital certificate. The CSR contains information that will be included in your certificate such as your organization name, common name (domain name), locality, and country. In addition, the CSR contains the public key that will be used in your digital certificate. The private key is NOT sent in the CSR as it must be kept “private” on the server where the CSR was originated.

The Visual Studio strong-name signing uses a public/private key pair in the process. The key pair information is stored in a key file, which can be a Personal Information Exchange (PFX) file or a certificate from the current user's Windows certificate store.

Thus, if you want to use a certificate from the Windows Certificate store, then you might use the following process:

  • Establish a CSR
  • Send to a Certificate Authority
  • Receive the Certificate
  • Import into your User Cert Store
  • Sign the assembly with the certificate

Alternatively, you could use a self-signed certificate generated via makecert or a tool like Pluralsights SelfCert.

References:
CSR: http://www.sslshopper.com/what-is-a-csr-certificate-signing-request.html
Signed Assembly: http://msdn.microsoft.com/en-us/library/ms247123(v=vs.90).aspx
SelfCert: http://blog.pluralsight.com/selfcert-create-a-self-signed-certificate-interactively-gui-or-programmatically-in-net

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top