I am a bit new to this myself but hope this can help. You need to generate a key in /etc/apache2 on Debian you just run apach2-ssl-certificate.
Then an example is as follows,
Listen 80
Listen 443
NameVirtualHost 192.168.1.1:80
#ensures connections over port 80 are forwarded to the ssl site
<VirtualHost www.site.com:80>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
DocumentRoot /usr/share/squirrelmail
ServerName
www.site.com
ServerAlias alias.com
ErrorLog /var/log/apache2/web_mail80_error.log
TransferLog /var/log/apache2/web_mail80_access.log
ServerAdmin
postmaster@site.com
</VirtualHost>
#load the ssl certificate you generated
SSLCertificateFile /etc/apache2/ssl/apache.pem
NameVirtualHost 192.168.1.1:443
#the secure site
<VirtualHost www.site.com:443>
SSLEngine On
DocumentRoot /usr/share/squirrelmail
ServerName
www.site.com
ServerAlias alias.com
ErrorLog /var/log/apache2/web_mail_error.log
TransferLog /var/log/apache2/web_mail_access.log
ServerAdmin
postmaster@site.com
</VirtualHost>
I will find out about how to secure particular directories because i need to know this myself soon. I will post here what i find.
Most likely you need to put SSLEngine On inside a <Directory> stanza.
Hope this helps
Regards
Alfar