Убедимся в том, что модуль mod_ssl активирован. В противном случае просто активируем его.
sudo a2enmod ssl
Настроим виртуальные хосты. Если же на сервере один хост, то можно ковыряться в одном файле - default-ssl. Но всё же будем считать, что хостов на сервере больше, чем один. Добавим отсутствующую по умолчанию (в убунте, за других не скажу) директиву NameVirtualHost для 443 порта. В Ubuntu это можно проделать в файле /etc/apache2/ports.conf
< IfModule mod_ssl.c>
NameVirtualHost *:443
Listen 443
< /IfModule>
Настраиваем виртуальный хост, запрещая при этом устаревший криптографический протокол SSLv2 и организуя перенаправление, если кто-то придёт на сайт по протоколу HTTP ( mod_rewrite должен быть включён). Примерно таким образом:
< IfModule mod_ssl.c>
< VirtualHost *:443>
ServerName dbadmin.example.org SSLEngine on SSLProtocol all -SSLv2 SSLCertificateFile "/etc/apache2/ssl/dbadmin.crt" SSLCertificateKeyFile "/etc/apache2/ssl/server.key" DocumentRoot "/srv/www/dbadmin.example.org/httpsdocs" < Directory "/srv/www/dbadmin.example.org/httpsdocs"> AllowOverride All Directory >
Перезагружаем апач и радуемся. Если радость не наступила, то ищем где была допущена ошибка :)
UPD: Если нужно при этом организовать правильный редирект со старых урлов на новые, т.е. с http на соответствующие https , то немного изменим настройки виртуального хоста: