Configure SSL Apache on Ubuntu...

Generate a Self-Signed Certificate:-

 $a2enmod ssl 
$mkdir /etc/apache2/ssl 
$openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/ssl.pem -keyout /etc/apache2/ssl/ssl.key

You will be asked for several configuration values. Enter values appropriate for your organization and server, as shown here.

Generating a 1024 bit RSA private key
writing new private key to '/etc/apache2/ssl/ssl.key'
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:Gujarat
Locality Name (eg, city) []:Ahmedabad
Organization Name (eg, company) [Internet Widgits Pty Ltd]:VishalVyas Ltd
Organizational Unit Name (eg, section) []:Web Dept
Common Name (eg, YOUR name) []:Vishal Vyas
Email Address []

Open /etc/apache2/ports.conf
NameVirtualHost *:443

Replace "" with your Linode's IP address.

Now open Apache virtual hosting file

vim /etc/apache2/sites-available/

<VirtualHost *:443>  Or  <VirtualHost>
     SSLEngine On
     SSLCertificateFile /etc/apache2/ssl/ssl.pem
     SSLCertificateKeyFile /etc/apache2/ssl/ssl.key
   DocumentRoot /var/www/html/vishal

Restart Apache:

/etc/init.d/apache2 restart

You should now be able to visit your site with SSL enabled (after accepting your browser's warnings about the certificate).