Pour que Apache devienne un serveur HTTPS, il faut tout d'abord avoir un certificat pour ce serveur. Ce certificat est composé de deux fichiers : la clé privée et le certificat proprement dit.

Ensuite on configure apache2 :
a2enmod ssl
Créer un virtualHost avec les paramètres suivants (penser à corriger les chemins !) :
<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/serveur.domaine.fr.pem
        SSLCertificateKeyFile /etc/apache2/ssl/serveur.domaine.fr.key
        SSLCertificateChainFile /etc/apache2/ssl/serveur.domaine.fr-chain.pem
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
        BrowserMatch "MSIE [2-6]" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        # MSIE 7 and newer should be able to use keepalive
        BrowserMatch "MSIE [7-9]" ssl-unclean-shutdown

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>

 
        ServerAdmin webmaster@domaine.fr
        ServerName serveur.domaine.fr
 
        DocumentRoot /home/httpd/serveur.domaine.fr/html/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/httpd/serveur.domaine.fr/html/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
        </Directory>
 
        ErrorLog /var/log/apache2/serveur.domaine.fr.error.log
        LogLevel warn
        CustomLog /var/log/apache2/serveur.domaine.fr.access.log combined
        CustomLog /var/log/apache2/serveur.domaine.fr.ssl.log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        ServerSignature Off
</VirtualHost>

Redémarrer apache2 pour activer le support. Par défaut, c'est le port 443 qui sera utilisé.

On peut utiliser SNI (support de plusieurs hôtes virtuels HTTPS sur la même IP). Pour cela, dans le fichier /etc/apache2/ports.conf, activer
NameVirtualHost *:443
Rappel : le SNI ne fonctionne pas avec les ordinateurs antérieurs à Windows XP inclus (http://en.wikipedia.org/wiki/Server_Name_Indication) !
Si on veut ces anciens navigateurs, il est nécessaire de mettre chaque virtualHost sur une adresse IP différente (et donc que le serveur les aie dans sa configuration réseau). Cette adresse IP doit alors être placée dans la définition du virtual Host à la place de l'étoile.