
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:
The use of Secure HTTP (or HTTPS) is essential to avoid getting my browser communication hijacked, or
The talk around Twitter right now is the phishing scam via Direct Message, as reported by many including