Configure SSL on Apache
Requirements
- Private key from CA like for your domain i.e. *.igrafxdemo.com
- Intermediate keyfile i.e. igrafxdemo_intermediate.crt
Note the above filenames are for visualization only, you need to use your own key and intermediate files.
Steps
Convert the .pfx file using OpenSSL.
openssl pkcs12 -in igrafxdemo_wildcard.pfx -clcerts -nokeys -out igrafxdemo.com.cer
openssl pkcs12 -in igrafxdemo_wildcard.pfx -nocerts -nodes  -out igrafxdemo.com.key 
Move them to the apache machine into the appropriate folder.
sudo mkdir /etc/apache2/ssl
sudo mv ~/igrafxdemo.com.cer /etc/apache2/ssl/
sudo mv ~/igrafxdemo.com.key /etc/apache2/ssl/
sudo mv ~/igrafxdemo_intermediate.crt /etc/apache2/ssl/
Enable the SSL module on apache, we also enable the rewrite module as we want all http traffic to be routed to https.
sudo a2enmod ssl
sudo a2enmod rewrite
sudo service apache2 restart
Open the SSL configuration file
sudo vi /etc/apache2/mods-available/ssl.conf
Change SSLCipherSuite and SSLProtocol paramteres to the following values.
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
SSLProtocol all -SSLv3
Open a proxy configuration file.
sudo vi /etc/apache2/sites-available/igxus.igrafxdemo.com.conf
Change your configuration to match the rewrite and SSL changes.
<VirtualHost *:81>
        ServerAdmin beta@igrafx.com
        ServerName igxus.igrafxdemo.com
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
        ErrorLog ${APACHE_LOG_DIR}/error_proxy_IGXUS.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access_proxy.log combined
</VirtualHost>
<VirtualHost *:443>
        ServerAdmin beta@igrafx.com
        ServerName igxus.igrafxdemo.com
        ProxyPass /icons !
        ProxyPass /logs !
        SSLEngine on
        SSLProxyVerify none
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
        SSLProxyEngine On
        SSLCertificateChainFile /etc/apache2/ssl/igrafxdemo_intermediate.crt
        SSLCertificateFile /etc/apache2/ssl/igrafxdemo.com.cer
        SSLCertificateKeyFile /etc/apache2/ssl/igrafxdemo.com.key
        ProxyRequests     Off
        ProxyPreserveHost Off
        <Proxy */manager/*>
                Order deny,allow
                Deny from all
                Allow from 50.43.107.10
        </Proxy>
        ProxyPass / http://172.16.250.174:8080/
        ProxyPassReverse / http://172.16.250.174:8080/
</LocationMatch>
        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error_proxy_IGXUS_SSL.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access_proxy_SSL.log combined
</VirtualHost>
Reload the configuration to take effect.
sudo service apache2 reload restart