SSL Certificate Installation in Ubuntu Server with Apache2

Ubuntu Server with Apache2 SSL Certificate Installation

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

These instructions were created using Ubuntu server 12.x. Additional help is available at: https://help.ubuntu.com/10.04/serverguide/httpd.html.

  1. Copy the Certificate files to your server.

    Download your Intermediate (DigiCertCA.crt) and Primary Certificate (your_domain_name.crt) files from your DigiCert Management Console, then copy them to the directory on your server where you will keep your certificate and key files. Make them readable by root only.

  2. 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 blocks which contain Apache settings.

  3. 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.

  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:

    <VirtualHost 192.168.0.1:443>
    DocumentRoot /var/www/
    SSLEngine on
    SSLCertificateFile /path/to/your_domain_name.crt
    SSLCertificateKeyFile /path/to/your_private.key
    SSLCertificateChainFile /path/to/DigiCertCA.crt
    </VirtualHost>
    

    Adjust the file names to match your certificate files:

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

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

  5. 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
  6. 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.

  7. Apache SSL Certificates, Guides, & Tutorials

    Buy Now Learn More

    Configuration and Useful Commands

    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.