Generate CSR - OpenSSL Introduction. This article provides step-by-step instructions for generating a Certificate Signing Request (CSR) in OpenSSL. This is most commonly required for web servers such as Apache HTTP Server and NGINX. If this is not the solution you are looking for, please search for your solution in the search bar above. OpenSSL generates the private key and CSR files. If you typed the command in step 2 exactly as shown, the files are named server.key and server.csr. You can now send the text in the server.csr file to the signing authority to obtain your certificate. (Do not send the information in your private key!).

  1. The utility OpenSSL is used to generate both Private Key (key) and Certificate Signing request (CSR). OpenSSL is usually installed under /usr/local/ssl/bin.If you have a custom install, you will need to adjust these instructions appropriately.
  2. Mar 29, 2019  From your OpenSSL folder, run the command: openssl genrsa –des3 –out 2048 OpenSSL is installed under '/usr/local/ssl/bin'.
  • Related Questions & Answers
  • Selected Reading

OpenSSL is a CLI (Command Line Tool) which can be used to secure the server to generate public key infrastructure (PKI) and HTTPS. This article helps you as a quick reference to understand OpenSSL commands which are very useful in common, and for everyday scenarios especially for system administrators.

Certificate Signing Requests (CSRs)

If we want to obtain SSL certificate from a certificate authority (CA), we must generate a certificate signing request (CSR). A CSR consists of mainly the public key of a key pair, and some additional information. Both these components are merged into the certificate whenever we are signing for the CSR.

While generating a CSR, the system will prompt for information regarding the certificate and this information is called as Distinguished Name (DN). The important field in the DN is the Common Name (CN) which should be the FQND (Fully Qualified Domain Name) of the server or the host where we intend to use the certificate with.


The next item in a DN is to provide the additional information about our business or organization. If we purchase an SSL certificate from a certificate authority (CA), it is very important and required that these additional fields like “Organization” should reflect your organization for details.

Here is a general example for the CSR information prompt, when we run the OpenSSL command to generate the CSR.

We can also provide the information by non-interactive answers for the CSR information generation, we can do this by adding the –subj option to any OpenSSL commands that we try to generate or run.

Below is an example for the –subj option where we can provide the information of the organization where we want to use this CSR.

Generate Csr And Private Key Openssl Download

Generating CSRs

In this section, we will cover about OpenSSL commands which are related to generating the CSR. This CSR can be used to request an SSL certificate from a certificate authority.

Generate a Private Key and a CSR

If we want to use HTTPS (HTTP over TLS) to secure the Apache or Nginx web servers (using a Certificate Authority (CA) to issue the SSL certificate). Also, the ‘.CSR’ which we will be generating has to be sent to a CA for requesting the certificate for obtaining CA-signed SSL.

Below is the command to create a 2048-bit private key for ‘domain.key’ and a CSR ‘domain.csr’ from the scratch.

The ‘–newkey rsa:2048’ is the option which we are specifying that the key should be 2048-bit using the RSA algorithm. The ’ –nodes’ option is to specifying that the private key should not be encrypted with a pass phrase. The ‘-new’ option, indicates that a CSR is being generated.

Generate a CSR from an Existing Private Key

Here we will learn about, how to generate a CSR for which you have the private key.


Below is the command to create a new .csr file based on the private key which we already have.

Generate a CSR from an Existing Certificate and Private key

Here we can generate or renew an existing certificate where we miss the CSR file due to some reason. Here, the CSR will extract the information using the .CRT file which we have.

Below is the example for generating –

Where -x509toreq is specified that we are using the x509 certificate files to make a CSR.

Generating a Self-Singed Certificates

Here we will generate the Certificate to secure the web server where we use the self-signed certificate to use for development and testing purpose.

Here, we generate self-signed certificate using –x509 option, we can generate certificates with a validity of 365 days using –days 365 and a temporary .CSR files are generated using the above information.

Viewing the Certificates Files

Please note that, CSR files are encoded with .PEM format (which is not readable by the humans). This is required to view a certificate. In this section, we can cover the OpenSSL commands which are encoded with .PEM files.

Viewing CSR Files Entires

The below command will be used to view the contents of the .CRT files Ex (domain.crt) in the plain text format.

Working with Private Keys

In this section, will see how to use OpenSSL commands that are specific to creating and verifying the private keys.

Create a Private Key

Below is the command to create a password-protected and, 2048-bit encrypted private key file (ex. domain.key) –

Enter a password when prompted to complete the process.

Verify a Private Key

Below is the command to check that a private key which we have generated (ex: domain.key) is a valid key or not

If the private key is encrypted, you will be prompted to enter the pass phrase. Upon the successful entry, the unencrypted key will be the output on the terminal.

In this article, we have learnt some commands and usage of OpenSSL commands which deals with SSL certificates where the OpenSSL has lots of features. We will learn more features and usage in the future. I hope this article will help us to understand some basic features of the OpenSSL.

The following instructions will guide you through the CSR generation process on Nginx (OpenSSL). To learn more about CSRs and the importance of your private key, reference our Overview of Certificate Signing Request article. If you already generated the CSR and received your trusted SSL certificate, reference our SSL Installation Instructions and disregard the steps below.

1. Log in to your server’s terminal.

You will want to log in via Secure Shell (SSH).

2. Enter CSR and Private Key command

Generate a private key and CSR by running the following command:

Here is the plain text version to copy and paste into your terminal:

Note:Replace “server ” with the domain name you intend to secure.

3. Enter your CSR details

Enter the following CSR details when prompted:

  • Common Name: The FQDN (fully-qualified domain name) you want to secure with the certificate such as,, *, etc.
  • Organization: The full legal name of your organization including the corporate identifier.
  • Organization Unit (OU): Your department such as ‘Information Technology’ or ‘Website Security.’
  • City or Locality: The locality or city where your organization is legally incorporated. Do not abbreviate.
  • State or Province: The state or province where your organization is legally incorporated. Do not abbreviate.
  • Country: The official two-letter country code (i.e. US, CH) where your organization is legally incorporated.

Note: You are not required to enter a password or passphrase. This optional field is for applying additional security to your key pair.

Openssl Ssl Certificate Request

4. Generate the order

Locate and open the newly created CSR in a text editor such as Notepad and copy all the text including:

Note 1: Your CSR should be saved in the same user directory that you SSH into unless otherwise specified by you.

Note 2: We recommend saving or backing up your newly generate “.key ” file as this will be required later during the installation process.

Return to the Generation Form on our website and paste the entire CSR into the blank text box and continue with completing the generation process.

How To Generate Csr And Private Key Using Openssl

Upon generating your CSR, your order will enter the validation process with the issuing Certificate Authority (CA) and require the certificate requester to complete some form of validation depending on the certificate purchased. For information regarding the different levels of the validation process and how to satisfy the industry requirements, reference our validation articles.

Csr Generator Tool

After you complete the validation process and receive the trusted SSL Certificate from the issuing Certificate Authority (CA), proceed with the next step using our SSL Installation Instructions for Nginx using OpenSSL.

Openssl Generate Csr And Private Key

Was this article helpful?

Openssl Generate Certificate

Related Articles

Coments are closed
Scroll to top