How To

How to Install Certificates on Apache 2.4.8

Prerequisites:

Concatenate the CAbundle and the certificate file which we sent you using the following command.

<strong>> cat domain_com.crt domain_com.ca-bundle > ssl-bundle.crt</strong>


If you are Using GUI Text Editor (Ex: Notepad):

(i) To concatenate the certificate files into single bundle file, first open domainname.crt and domainname.ca-bundle files using any text editor.

(ii) Now copy all the content of domainname.crt and paste it on the top of domainname.ca-bundle file.

(iii) Now save the file name as "ssl-bundle.crt".

Under Linux, to check the version number of your Apache server, execute the following command:

#apache2ctl -version or #apachectl -version

Configure the Apache server:

  1. Locate the Apache configuration file (example httpd.conf / ssl.conf), the configuration file name can be different depending on your apache version or flavour. Or in a Windows environment (EasyPHP, Wamp, ...) :<pre>C:\Program Files\Apache Software Foundation\Apache X.X\conf\<strong>SSL2015</strong></pre>
    C:\Program Files\Apache Software Foundation\EasyPHP\<strong>SSL2015</strong>

    In a standard installation under Linux, the SSL advanced configuration file is located here:

    <em>/etc/apache2/mods-enabled/ssl.conf</em>

    but it is not in this file that you will activate the certificate for a website. You'll have to edit the file

    <em><strong>/etc/apache2/sites-enabled/default-ssl.conf</strong></em>


    Use the following command to figure out where Apache is pulling its configuration from:

    apache2ctl -V | grep SERVER_CONFIG_FILE
    or just
    apachectl -V | grep SERVER_CONFIG_FILE
    The situation for ubuntu on Apache differs, as the configurations for 443 and 80 ports for each site are located in separate files. You can find it at /etc/apache2/sites-enabled/ Edit or create the file with the VirtualHost for 443 port to set up the secure connection.

    Actually you can duplicate the record for port 80 (should be in your VirtulHost file by default) and change port 80 to port 443. Simply add it below non-secure module.

  2. In the Virtual Host settings for your site, locate the SSL certificate settings section and verify that you have the
    following 2 directives within the Virtual Host. Please add them in if they are not present:
    • SSLCertificateKeyFile ( path to the private_key.key file used for the initial generation of the CSR)
    • SSLCertificateFile ( path to the PEM file containing the end entity certificate and the intermediates )

    Example VirtualHost Configuration:
    <VirtualHost 91.199.212.176:443>
    DocumentRoot /etc/httpd/htdocs
    ServerName XYZ.com
    SSLEngine on
    SSLCertificateFile /usr/local/ssl/crt/ssl-bundle.crt
    SSLCertificateKeyFile /usr/local/ssl/private/private.key
    </VirtualHost>


    Note: As with the example above, file names can be domainname.crt, server.key, your server however may use a different naming convention. If you are using a different file location than the example above, you will need to change the paths to match your files on the server.

  3. If you want to enable OCSP Stapling for the website, please add the following directive to the Virtual Host section:

    SSLUseStapling on

    Also specify OCSP cache response location and size outside of the Virtual Host section using SSLStaplingCache

    SSLStaplingCache shmcb:/tmp/stapling_cache(128000)

    Note: OSCP Stapling can be configured starting from Apache HTTP server 2.3.3 and later.

  4. After making changes to your config file it is good practice to check the file for syntax errors using "<em>apachectl configtest</em>". The command will return Syntax Ok if there are no errors.

  5. Restart your apache web server:

    <em>apachectl stop</em>
    <em>apachectl start</em>