Cloud Platform

Creating a self-signed SSL certificate

You may want to create a self-signed SSL certificate for a Cloud Platform application in one of the following cases:

  • You want to test your application with SSL before purchasing the final certificate

  • You want to test a new subdomain on an application with a SSL certificate that doesn’t cover the new subdomain

  • Your application requires IPv6 but not SSL

Creating SSL certificates

To create a self-signed SSL certificate, you will need both a root certificate and a site certificate.

Create a root certificate

To create a root certificate:

  1. Create a private key for your root certificate. Connect to your environment with SSH

  2. To ensure that you are in a writable directory (such as /mnt/tmp/), use a command similar to the following:

    openssl genrsa -out root-CA.key 2048
    
  3. Next, enter a command similar to the following example to self-sign the certificate:

    openssl req -x509 -new -nodes -key root-CA.key -days 1024 -out root-CA.pem
    
  4. The following result (or something similar to it) will be displayed. Enter the values that are appropriate to your site, system, and location.

    You are about to be asked to enter information that will be
    incorporated into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a
    DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:US
    State or Province Name (full name) [Some-State]:Oregon
    Locality Name (eg, city) []:Portland
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: My Name (Root CA)
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:www.mysite.com
    Email Address []:[email protected]
    

The root certificate is created in the same directory, with the name root-CA.pem; its key is created with the name root-CA.key.

Create the site certificate

Next, use the following procedure to create the site certificate.

Note

You need to use different values for the Organization Name than you used when creating the root certificate, or the process will fail, and the certificate will not work properly.

You need to use the same values for the Common Name that you used when creating the root certificate. The Common Name must begin with a subdomain, such as www.

  1. Create the private key with the following command:

    openssl genrsa -out site-key.pem 2048
    
  2. Use the following command to generate the certificate signing request (CSR):

    openssl req -new -key site-key.pem -out site-csr.csr
    
  3. You will be presented with similar text as when you created the root certificate. Use the same values as you did for the root certificate except for the Organization Name*. For the Organization Name, use a different value, such as My Name (Site CA).

    The following questions will also be displayed:

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    

    Note

    Skip A challenge password by pressing the Enter key.

  4. Enter a command similar to this example this to sign the CSR with the root key and output in PEM format with the .pem extension:

    openssl x509 -req -in site-csr.csr -CA root-CA.pem -CAkey root-CA.key -CAcreateserial -out site-crt.pem -days 500
    

The site certificate CSR is created in the same directory, with the name site-csr.csr; the site certificate key is created with the name site-crt.pem, and its key is created with the name site-key.pem.

Install your certificates

Next, install the root certificate and site certificate, as described in Installing an SSL certificate not based on an Acquia-generated CSR, and then complete the appropriate steps for your application:

  • If your application requires IPv6, select Install legacy SSL certificate while installing the certificate, and review Legacy/ELB certificates for information about configuring your DNS settings.

  • If your application doesn’t require IPv6, use the Standard installation method outlined in Standard certificates.

Next step

A code change is required to route traffic to https to leverage your new SSL certificate. For more information, see Redirecting all HTTP traffic to HTTPS.