Tag: web

Virtual Hosts on Apache

Virtual Hosts on Apache

Working on multiple Web Projects on the same system might become a headache to manage. You must use Virtual Hosts if you are using Apache as pointed out by David Kiss. Following are the steps required to create a Virtual Host called magento in your system such that when you type http://magento the site is displayed, as per Mac OS X Lion using MAMP:

    1. Backup your files.
      1. Open a terminal window.
      2. Backup your hosts file:
        sudo cp /private/etc/hosts /private/etc/hosts.bak
      3. Backup your Apache configuration file:
        cp /Applications/MAMP/conf/apache/httpd.conf /Applications/MAMP/conf/apache/httpd.conf.bak
      4. Backup your Virtual Hosts configuration file:
        cp /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf.bak
    2. Update the hosts file.
      1. Edit the hosts file:
        sudo nano /private/etc/hosts
      2. Add the name of the Virtual Host you want on your system:
        127.0.0.1 magento
      3. Save and exit:
        Press Ctrl+X then Y.
    3. Update the Apache configuration file.
      1. Edit the Apache configuration file:
        nano /Applications/MAMP/conf/apache/httpd.conf
      2. Un-comment the line where httpd-vhosts.conf is found such that it looks like this:
        Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
      3. Save and exit:
        Press Ctrl-W then Y
    4. Update the Virtual Hosts configuration file.
      1. Edit the configuration file:
        nano /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
      2. At the end add the following:
        <VirtualHost *:80>
        ServerName magento
        DocumentRoot /Users/fraki/Sites/magento
        </VirtualHost>
      3. Save and exit:
        Press Ctrl-X then Y
    5. Place the site contents in the folder specified.
    6. Navigate to the virtual host.
Using Virtual hosts

You might want to check the official documentation of Apache about Virtual Hosts, in this post I am using name-based virtual hosts.

SSL Certificates

SSL Certificates

At some point any Web Developer would need to secure part of a site and therefore require an SSL certificate. There are different options available depending on the use and here is a short post documenting the various options:

Free for Open Source Projects: Some providers are willing to offer free SSL certificates for open-source projects such as GoDaddy.com, obviously some terms and conditions apply which one must read. More details can be found here.

Free with Hosting Plan: Some Web Hosting providers would include a free SSL certificate if you buy a hosting plan. Generally the offer is for the first year with competitive renewal pricing. Just to name a few: HostColor.com, DomainAvenue.com and HostGator.com

Free SSL Community: A growing community called StartSSL are offering an entry level service for free for basic used and limited warranty which might well satisfy your needs and therefore worth a check.

Comparison Charts: If none of the above suits you then you might have to actually buy an SSL certificate, not before doing the appropriate research. WhichSSL is a dedicated site to aid in the selection of the appropriate certificate authority or SSL vendor to choose with the help of a comparison chart. More comparisons can be found in Wikipedia.org and SSLShopper.com. Your research might also payoff by finding some promotional offers and/or discounts.

Self-Signed Certificates for Development: Well if you need a certificate just for development purposes then you can sign one yourself as shown in my previous post.

Self-Signed SSL Certificate

Self-Signed SSL Certificate

If you are planning on developing or customizing some web systems such as WordPress or Magento, then at one point you will need some security. You might want to sign the SSL certificate yourself. A number of guides exists for this, for Windows Systems I found the one by Shivprasad Koirala to be very intuitive and for Unix systems the one by Heroku and Scott Baker are best. Here are the steps required:

  1. Check that openssl is installed by running the following command in a terminal:
    which openssl
     
  2. If no such file is found then you need to install. Here are the possible installation methods
    1. Mac OSX – Via Homebrew: homebrew install openssl
    2. Windows – Download software package.
    3. Linux (Debian/Ubuntu Variants) – Guide – sudo apt-get install openssl
    4. Linux (RedHat Variants) – Guide – yum install openssl

     

  3. Generate the keys for the Certificate Authority
    openssl genrsa -des3 -out ca.key 4096
    openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
     
  4. Generate the private key for your server
    openssl genrsa -des3 -out server.key 4096
     
  5. Create the certificate signing request to be signed (leave challenge password and organization name empty)
    openssl req -new -key server.key -out server.csr
     
  6. Sign your certificate
    openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
     
  7. Optionally remove the password
     openssl rsa -in server.key -out server.key.nopass

For some documentation about how to use openssl check the official site.

Theme: Overlay by Kaira