Installing Your SSL Certificate with Apache

Copy the certificate files to your server

  1. Download the intermediate and your primary certificate (your_domain_name.crt) files.
  2. Copy these files, along with the .key file you generated when creating the CSR, to the directory on the server where you keep your certificate and key files.

Note: Make them readable by root only to increase security.

Find the Apache configuration file (httpd.conf) you need to edit

The location and name of the configuration file can vary from server to server—especially if you're using a special interface to manage your server configuration.

  • Apache's main configuration file is typically named httpd.conf or apache2.conf. Possible locations for this file include /etc/httpd/ or /etc/apache2/. For a comprehensive listing of default installation layouts for Apache HTTPD on various operating systems and distributions, see Httpd Wiki - DistrosDefaultLayout.
  • Often, the SSL certificate configuration is located in a block in a different configuration file. The configuration files may be under a directory like /etc/httpd/vhosts.d/, /etc/httpd/sites/, or in a file called httpd-ssl.conf.

One way to locate the SSL Configuration on Linux distributions is to search using grep, as shown in the example below.

Run the following command:

grep -i -r "SSLCertificateFile" /etc/httpd/

Note: Make sure to replace /etc/httpd/ with the base directory for your Apache installation.

Identify the SSL block you need to configure

If your site needs to be accessible through both secure (https) and non-secure (http) connections, you need a virtual host for each type of connection. Make a copy of the existing non-secure virtual host and configure it for SSL as described in step 4.

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

Configure the block for the SSL-enabled site

  1. Below is a very simple example of a virtual host configured for SSL. The parts listed in bold are the parts you must add for SSL configuration.
  • <VirtualHost 192.168.0.1:443>
  • DocumentRoot /var/www/html2
  • ServerName www.yourdomain.com
    • SSLEngine on
    • SSLCertificateFile /path/to/your_domain_name.crt
    • SSLCertificateKeyFile /path/to/your_private.key
    • SSLCertificateChainFile /path/to/Example.crt
    • </VirtualHost>
  1. Make sure to adjust the file names to match your certificate files.
    • SSLCertificateFile is your certificate file (e.g., your_domain_name.crt).
    • SSLCertificateKeyFile is the .key file generated when you created the CSR (e.g., your_private.key).
    • SSLCertificateChainFile is the intermediate certificate file (e.g., Example.crt)

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

Test your Apache configuration file before restarting

As a best practice, check your Apache configuration file for any errors before restarting Apache.

Caution: Apache won't start again if your configuration files have syntax errors.

Run the following command to test your configuration file (on some systems, it's apache2ctl):

apachectl configtest

Note: For EV certificates, Internet Explorer 7 requires you to turn ON the phishing filter. If you don't, the browser's address bar won't display properly--green address bar--letting customers know your site is being secured by an EV Certificate.

Restart Apache

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

apachectl stop
apachectl start

Restart Notes:

If Apache doesn't restart 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 to 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.

Congratulations! You've successfully installed your SSL certificate.