For help creating a CSR for Ubuntu Server with Apache2, see our Apache CSR Creation instructions, or try our CSR creator.

These instructions were created using Ubuntu server 12.x. Additional help is available at:


  • Copy the Certificate files to your server.

Download your Intermediate CA and SSL certificate (your_domain_name.crt) files from your portal, then copy them to the directory on your server where you will keep your certificate and key files. Make them readable by root only.

  • Find the Apache config file to edit.

Ubuntu’s Apache configuration file for your ssl site is typically found in /etc/apache2/sites-enabled/your_site_name. If it is not found in the ‘sites-enabled’ folder, you would need to run the command sudo a2ensite your_site_name.

If you open the file with a text editor, you should be able to find <VirtualHost> blocks which contain Apache settings.

  • Identify the SSL <VirtualHost> block to configure.

If you need your site to be accessible through both secure (https) and non-secure (http) connections, you will need a two separate files in /etc/apache2/sites-enabled/. One will be for port 80 and the other file for port 443. Configure it for SSL as described in step 4.

If you only need your site to be accessed securely, configure the existing virtual host for SSL as described in step 4.

  • Configure the <VirtualHost> block for the SSL-enabled site.

Below is a very simple example of a virtual host configured for SSL. The parts listed in bold are the parts that must be configured for the SSL configuration and they may be spread out throughout the file:

DocumentRoot /var/www/
SSLEngine on SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt

Adjust the file names to match your certificate files:

  • SSLCertificateFile should be your TRUSTZONE certificate file (eg. your_domain_name.crt).
  • SSLCertificateKeyFile should be the key file generated when you created the CSR.
  • SSLCertificateChainFile should be the TRUSTZONE intermediate certificate file.

If the SSLCertificateChainFile directive does not work, try using the SSLCACertificateFile directive instead.

  • Test your Apache config before restarting

It is always best to check your Apache config files for any errors before restarting, because Apache will not start again if your config files have syntax errors. Run the following command (it is apache2ctl on some systems):

apachectl configtest

  • Restart Apache

You can use apachectl commands to stop and start Apache with SSL support:

apachectl stop
apachectl start

Note: If Apache does not start with SSL support, try using “apachectl startssl” instead of “apachectl start”. If SSL support only loads with “apachectl startssl” we recommend you adjust the apache startup configuration to include SSL support in the regular “apachectl start” command. Otherwise your server may require that you manually restart Apache using “apachectl startssl” in the event of a server reboot. This usually involves removing the and tags that enclose your SSL configuration.


  • Install Apache2

Required for SSL certificates to be used:

sudo apt-get install apache2

  • Enable SSL Module

‘default-ssl’ can be replaced by the real site name you set up in /etc/apache2/sites-available/

sudo a2enmod ssl

Once the site listed in the command above is enabled with that command, the site will appear in /etc/apache2/sites-enabled.

  • Apply SSL Module to Site

sudo a2ensite default-ssl
sudo /etc/init.d/apache2 restart

  • Cipher Suite

Once the a2enmod ssl command has been run, you can edit the ssl.conf file in /etc/apache2/mods-enabled.

If the a2enmod command has not been run yet, you can preconfigure the ssl.conf file in /etc/apache2/mods-available.

Last updated: July 26, 2017