česky | english
What is a "CSR" and how do I get one?
CSR is a Certificate Signing Request. It is a file with a special contents.
You have to create a CSR file on your computer (a PC or a server). You can use, for example, the following means:
- for a Windows OS:
a web browser, NOTE
- the Certificates module of the MMC administrative tool,
- the OpenSSL for Windows program,
- the XCA for Windows program.
- for a Linux OS:
a web browser, NOTE
- the OpenSSL for Linux program,
- the XCA for Linux program.
NOTE on CSR generating in browsers since 20170101 - important!
You can successfully generate a CSR in the Firefox (tested version: 50.1.0) browser only (from the most used browsers). Another browsers tested (Opera - 42.0.2393.94, Safari - 5.1.7, Chrome - 55.0.2883.87m/Chromium) have failed to create a valid CSR or to store a private key. Microsoft IE and Edge are intentionally unable to generate a CSR. (Note that Firefox has its own certificate store!)
Programs generate both a private and a public PKI key. The private key stays saved on your computer (apart from exceptions, as backups). The public key with more information is saved to the CSR file, which represents the base for your new certificate. The CSR file is assembled, according to the certificate purpose intended, based on the pattern you have selected (e.g. a personal certificate or a web server certificate). The CSR file contains your generated public key with a part of information about the subject of your planned certificate and about your public key.
The CSR file (certificate signing request) then can be submitted to a CA or Certification Authority (here: CAcert Inc.), which signs the CSR with its (CA's) private key. By doing this, the CA creates your new certificate, which contains your public key and can also contain a part of CSR information. CAcert first modifies your CSR, see the Certification Practice Statement (CPS). Detailed tutorials see TutorialsHowto.
CA does not need to know the private key you have generated. Keep your private key secret.
CA (CAcert's CA) uses the CSR file to grab your information, check it against your web account at CAcert, and then to generate the real certificate you (and your services) will use at secured communication with your clients (HTTPS, SSL, POP3/SSL, etc.) and with servers.
Then you can download the certificate issued and save it as a file with one of CER, CRT, PEM or DER formats. First three formats are usually Base64 coded, DER is the binary format.
If you have used the Firefox browser to generate a CSR and save the certificate issued, then you have to realize, that Firefox has its own certificate repository; more steps are needed to save the certificate with the corresponding private key into the system certificate repository. This is discussed on the Wiki page Browser Clients.
(based on Bruno ideas on CAcert support mailing list)
Example of CSR
tools to generate CSRs
- If you're using IIS have a look at:
HELP/3 http://isaserver.org/tutorials/2004wildcardcert.html (to be verified)
- if you're using openssl have a look at:
OpenSSL users can also look at DigitCert's CSR wizard, which will generate the OpenSSL command-line you need to type in order to generate the CSR locally: https://www.digicert.com/easy-csr/openssl.htm
Analyse your CSR data block
Official OpenSSL stuff
You can get some more info reading the official OpenSSL documentation.