Skip to main content

Create a Certificate Signing Request (CSR)

A CSR (Certificate Signing Request) is a digital request for issuing a TLS certificate. TLS certificates ordered through Nine are not limited to managed services. They can also be used with root servers and third-party infrastructure.

Not required for single-domain and wildcard certificates

If you order a single-domain or wildcard certificate through Nine, you don't need to create a CSR. Nine handles this automatically.

Creating a CSR is required for:

  • EV and multi-domain certificates
  • Certificates from third-party providers

Where to Create the CSR

Generate the CSR and private key on your Managed Server. This ensures the private key never leaves the secure server environment.

Preparation

This guide uses OpenSSL. On managed environments, OpenSSL is pre-installed. For root environments, install it first if needed.

The following steps use default directories for Nine managed environments. Adjust paths for root environments as needed.

  1. Create a directory that is not publicly accessible via a web server. Private keys must remain secret:

    mkdir -p ~/.ssl/
    cd ~/.ssl/
  2. Create an OpenSSL config:

    ~/.ssl/openssl.conf
    [req]
    distinguished_name = req_distinguished_name
    req_extensions = v3_req

    [req_distinguished_name]

    [ v3_req ]
    subjectAltName = ${ENV::SAN}
    # keyUsage = keyEncipherment, dataEncipherment
    # extendedKeyUsage = serverAuth

Create the CSR

Run the following command to create both the CSR and private key for your domain. This uses an ECDSA key with the P-256 curve, the current industry standard for fast and secure TLS handshakes:

SAN=DNS:example.com,DNS:www.example.com openssl req -new -subj "/C=CH/ST=Zuerich/L=Zuerich/O=Example AG/CN=example.com/" -sha256 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout SSL_example.com.key -out SSL_example.com.csr -config openssl.conf

Avoid umlauts, special characters (such as French accents), and any abbreviations in the certificate fields.

Country Name

2-digit country code per ISO 3166 (CH = Switzerland).

State or Province Name

The canton or province where the person or company is registered.

Organization Name

Your company or association name. For certificates issued to individuals, enter the full name.

Common Name

The domain name to protect with the certificate, or *.example.com for wildcard certificates.

Wildcard certificates cover one subdomain level. For example, *.example.com covers www.example.com and staging.example.com, but not www.staging.example.com. To cover www.staging.example.com, use *.staging.example.com.

The TLS certificate is only valid for the domain specified here.