Search Our Database

How to Generate a Certificate Signing Request (CSR) on Linux

Last updated on |
by

Introduction

A Certificate Signing Request (CSR) is a crucial part of the SSL certificate lifecycle. It is a block of encoded text containing information about the organization requesting the certificate, such as its domain name, locality, and public key. This request is sent to a Certificate Authority (CA) to initiate the process of issuing a digital certificate.

CSRs are typically generated on the server where the certificate will be installed. They are most commonly used in web hosting environments, mail servers, and other secure communication setups. The most common method of generating a CSR is via the OpenSSL toolkit, which is available on most Unix-like systems, including Linux and macOS.

Generating a CSR correctly is essential to ensure the validity and trustworthiness of the SSL certificate. An improperly formatted CSR or one containing incorrect information can lead to delays or rejection from the CA. This guide is particularly useful for system administrators, DevOps professionals, and developers who manage secure connections for their services.

This article explains how to generate a CSR using OpenSSL on a Linux server. It will outline the necessary prerequisites, walk through each step, and discuss common issues such as key mismanagement and incorrect distinguished names. The expected output is a .csr file that can be submitted to any Certificate Authority to obtain an SSL certificate.

 

Prerequisites

  • A Linux-based system (Ubuntu 20.04+, CentOS 7+, Debian 10+, etc.)
  • OpenSSL version 1.1.1 or higher installed
  • Root or sudo access to the terminal
  • A domain name that needs to be secured with SSL

 

Step-by-step Guide

Step 1: Check if OpenSSL is Installed

First, ensure that OpenSSL is available on the system.

openssl version

If OpenSSL is not installed, install it using your package manager:

sudo apt install openssl
sudo yum install openssl

 

Step 2: Create a Private Key

Generate a 2048-bit RSA private key that will be used to sign the CSR:

openssl genrsa -out yourdomain.key 2048
🖊️ Tip: Store this private key securely. It is required for installing the SSL certificate and should not be shared.

 

Step 3: Generate the CSR

Run the following command to generate the CSR:

openssl req -new -key yourdomain.key -out yourdomain.csr

You will be prompted to fill in the following information:

  • Country Name (2 letter code): e.g., MY
  • State or Province Name: e.g., Selangor
  • Locality Name: e.g., Shah Alam
  • Organization Name: Your business or personal organization name
  • Organizational Unit Name: e.g., IT Department
  • Common Name: The fully qualified domain name (FQDN), e.g., www.yourdomain.com
  • Email Address: Optional, but recommended

 

Step 4: Verify the CSR Content

To ensure the CSR was generated correctly, display its contents using:

openssl req -text -noout -verify -in yourdomain.csr

This will output the CSR in a human-readable format. Verify that all the details are accurate.

 

Step 5: Submit the CSR to a Certificate Authority

The file yourdomain.csr can now be submitted to a Certificate Authority of your choice to request an SSL certificate.

 

Conclusion

Generating a CSR is a fundamental step in obtaining an SSL certificate. By using OpenSSL on a Linux system, a private key and CSR can be securely created with just a few commands. The resulting CSR file contains the necessary details that a Certificate Authority needs to issue a certificate. Proper handling of the private key and accurate entry of organization details are crucial throughout the process.

For additional guidance on installing SSL certificates or troubleshooting SSL-related issues, refer to related documentation or consult your CA’s support page.

Should you have any inquiries about the guidelines, please feel free to open a ticket through your portal account or contact us at support@ipserverone.com. We’ll be happy to assist you further.