Incorporating the use of Secure Socket Layer (SSL) library is straight forward with Apache web server. This is the library I always use for all of my Apache web servers installations. From one robust open source software to another, they’re a perfect fit. They make deployment quick and easy. Here’s are the steps for Apache HTTP and OpenSSL:
Compilation
Assuming the OpenSSL installation in /usr/local/ssl, the Apache web server source code compilation will require the configure option:
–enable-ssl –with-ssl=/usr/local/ssl
I use the following:
./configure –prefix=/usr/local/apache2 -enable-ssl –with-ssl=/usr/local/ssl
Then just run:
make install
On Unix platforms like Solaris and Linux, the configure and compilation should work without a hitch.
Configuration
Go to the configuration directory and edit the httpd.conf file (in my example /usr/local/apache2/conf) and uncomment this line:
include conf/extra/httpd-ssl.conf
Then proceed to the /usr/local/apache2/conf/extra directory and edit the httpd-ssl.conf:
- Specify the machine’s IP address to “listen” on port 443. Specifying an IP address is useful if the machine has multi-homed (multiple IPs configured).
- Ensure the Signed SSL Certificate is on this machine. Store it in /usr/local/apache2/conf/www.website.com.cert pathname. It can be anywhere that’s accessible from the web server level.
- The SSL key for the host needs to be available also, and stored in the same /usr/local/apache2/conf directory.
- For the <VirtualHost> tags, edit the _default_ with the IP address, and may look something like this:
<VirtualHost IPAddressNum:443>
ServerName www.website.com
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile “/usr/local/apache2/conf/www.website.com.cert”
SSLCertificateKeyFile “/usr/local/apache2/conf/www.website.com.key”<FilesMatch “\.(cgi|shtml|phtml|php)$”>
SSLOptions +StdEnvVars
</FilesMatch><Directory “/usr/local/apache2/cgi-bin”>
SSLOptions +StdEnvVars
</Directory>BrowserMatch “.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0CustomLog “/usr/local/apache2/logs/ssl_request_log” “%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”
</VirtualHost>
References
Further options and settings for SSL are available from the Apache.org site: