Saturday, August 6, 2011

Enable HTTPS in Apache localhost using WAMP Server 2.1

Step 1

Download and install WAMP Server 2.1 from this link

Step 2
Generate a SSL certificate
Generate Key
Go to command prompt (Start Menu->Accessories->Command Prompt) type
Then type
Type C:\wamp\bin\apache\Apache2.2.17\bin
Go to C:\wamp\bin\apache\Apache2.2.17\bin and run the following command:

openssl req -new > webserver.csr

The command runs and prompts you to enter a PEM pass phrase and verify it. Write down the phrase because you will need it later.

It will then ask you to enter information that will be incorporated into your certificate request. When the command finishes, it has created several files, including privkey.pem, in


Remove Passphrase

Run the following command:
openssl rsa -in privkey.pem -out webserver.key

You will be prompted for the pass phrase from the previous step. The RSA key is written and the file webserver.key is now available in the folder.

Convert Into Signed Certificate

Run the following command to create a certificate which expires after one year:
openssl x509 -in webserver.csr -out webserver.cert -req -signkey webserver.key -days 365

Store Certificate Files
Create a folder ssl in  C:\wamp\bin\apache\Apache2.2.17\conf\  copy all generated files to ssl

Step 3

Modify conf/extra/httpd-ssl.conf
Change the following lines, adjusting the email address and the paths to your settings:

# General setup for the virtual host
SSLSessionCache "shmcb:C:/wamp/Apache/logs/ssl_scache(512000)"
SSLMutex default
# General setup for the virtual host

DocumentRoot "C:/wamp/www/"
ServerName localhost:443
ErrorLog "C:/wamp/logs/sslerror.log"
TransferLog "C:/wamp/logs/sslaccess.log"
SSLCertificateFile "conf/ssl/webserver.cert" 
SSLCertificateKeyFile "conf/ssl/webserver.key" 
CustomLog "C:/wamp/logs/sslrequest.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Modify httpd.Conf
Make sure your secure site is part of the virtual hosts in Apache:

# Secure (SSL/TLS) connections

#Include conf/extra/httpd-ssl.conf

Include conf/extra/httpd-ssl.conf

Step 4

Test https

Run httpd –t and make sure the syntax is OK.

Restart Apache.

Check that port 443 is open by running the following in the command prompt:

netstat -an | more
Test the https connection from your browser and hopefully it works

I found the article some where in WAMP forum and i made some changes to meet my requirement and fully functional, your feedback is welcome

The above method tested using WAMP Server 2.1 in windows 7, does not applies to wamp1.7 

No comments: