Understanding and Generating Certificate Signing Requests (CSR) for SSL/TLS Certificates

Author:Mikkel Haldorsen
Updated:Jul 6, 2025

A Certificate Signing Request (CSR) is a digital certificate used to apply for an X.509 public-key certificate, which is necessary for obtaining an SSL/TLS certificate. This process is essential for securing websites and ensuring data integrity through encryption. Below, we'll guide you through the process of generating a CSR, troubleshooting common issues, and providing additional resources for further assistance.


What is a Certificate Signing Request (CSR)?

A CSR is a cryptographic request made to a Certificate Authority (CA) to issue an X.509 certificate. This certificate is used to obtain a public key, which is then used to secure websites or applications through SSL/TLS encryption.


Steps to Generate a CSR

1. Prepare Your Private Key and Public Key Pair

  • Generate a private key using a tool like OpenSSL or a password-based tool such as Keychain (on macOS) or Pageant (on Windows).
  • Ensure the private key is securely stored and never exposed publicly.

2. Generate a Certificate Signing Request (CSR)

  • Use your private key to create a CSR. The format varies depending on the system:
    • OpenSSL:
      openssl req -new -key privateKey.pem -out csr.pem
      
    • Windows: Tools like OpenSSL for Windows or built-in tools in some servers can be used.

3. Convert the CSR to a PKCS#10 Format

  • Some systems require the CSR in PKCS#10 format:
    openssl pkcs12 -pkeyopt -out privateKey.pkcs12
    

4. Submit the CSR to a Certificate Authority (CA)

  • Submit the generated CSR to a trusted CA like Let's Encrypt, GoDaddy, or Cloudflare.

Common Key Sizes and Algorithms

Key Size Bits Algorithm
2048 2048 RSA
256 256 ECDSA
3072 3072 Ed25519

Ensure your server or CA supports the key size and algorithm required for your certificate.


Generating a CSR for Specific Servers

1. AWS (Amazon Web Services)

  • Use the AWS IAM CLI to generate a CSR:
    aws iam generate-csr --output /path/to/csr.pem
    

2. Synology NAS

  • Navigate to Control Panel > Security > Certificate Manager, select "Create CA," and follow the prompts.

3. Node.js

  • Use OpenSSL or a library like openssl-node to generate the CSR.

4. Microsoft Exchange/Active Directory

  • Use the Exchange Admin Center to create a new certificate request.

Troubleshooting Common Issues

1. Invalid CSR Format

  • Ensure the CSR includes:
    • Public key information
    • Private key algorithm
    • Requested validity period

2. Incorrect Key Usage

  • Verify that the private key is marked correctly in the CSR (e.g., aes128-sha256 for OpenSSL).

3. Missing Information

  • Ensure all required fields (like CN, O, OU) are populated.

Resources and Further Reading

For detailed instructions on generating CSRs for specific servers or tools, refer to these resources:


Conclusion

Generating a CSR is a crucial step in obtaining an SSL/TLS certificate. By following the steps outlined above and troubleshooting common issues, you can successfully create and submit a valid CSR to your preferred Certificate Authority. If you encounter any challenges or need further assistance, feel free to reach out to our support team for guidance.