SSL

https://www.sslforfree.com/ – free 3 months certificate
https://www.linode.com/docs/security/ssl/ssl-apache2-debian-ubuntu

Your virtual host:

<VirtualHost *:443>
    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/example.com.crt
    SSLCertificateKeyFile /etc/ssl/private/example.com.key
    SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt  #If using a self-signed certificate, omit this line

    ServerAdmin info@example.com
    ServerName www.example.com
    DocumentRoot /var/www/example.com/public_html/
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/access.log combined
</VirtualHost>
a2enmod ssl
service apache2 restart

.htaccess

RewriteEngine On
RewriteBase /

RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

RewriteRule /?sitemap.xml$ /sitemap-xml.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]