Постараюсь максимально коротко, по принципу шпаргалок. Для начала переходим в /var/www/html и создаём там папку с именем нашего домена. В моём случае это icopydoc.com. Для теста заливаю в эту папку файл index.html
Теперь переходим в /etc/apache2/sites-available/ и создаём в ней файл с расширением conf, имя которого соответствует нашему домену. В моём случае файл будет называться icopydoc-com.conf, у вас вместо icopydoc.com будет что-то другое.

Открываем созданный на предыдущем шаге файл icopydoc-com.conf и наполняем его следующей информацией:
<VirtualHost *:80>
ServerAdmin admin@icopydoc.com
ServerName icopydoc.com
ServerAlias www.icopydoc.com
DocumentRoot /var/www/html/icopydoc.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Подключаем файл конфигурации. Для этого в консоли сервера вводим команду:
sudo a2ensite icopydoc-com.conf
Завершающим шагом перезагружаем наш Апач
sudo service apache2 restart
Настройка протокола https (SSL) на Ubuntu + Apache
Открываем 443-й порт и проверяем, что всё получилось:
ufw allow 443/tcp
sudo ufw disable
sudo ufw enable
sudo ufw status
Генерируем SSL сертификат для нашего сайта:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/icopydoc-com_key.key -out /etc/ssl/icopydoc-com_crt.crt
где:
- req -запрос на создание сертификата
- -x509 - создание самоподписанного сертификата
- -days - время действия сертификата
- -keyout - путь, куда поместим файл ключей;
- -out - путь, куда поместим файл сертификата
Теперь открываем созданный нами ранее файл конфигурации icopydoc-com.conf
nano /etc/apache2/sites-available/icopydoc-com.conf
Добавляем правила для 443 порта:
<VirtualHost *:443>
ServerAdmin admin@icopydoc.com
ServerName icopydoc.com
ServerAlias www.icopydoc.com
DocumentRoot /var/www/html/icopydoc.com
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#Include conf-available/serve-cgi-bin.conf
SSLEngine on
SSLCertificateFile /etc/ssl/icopydoc-com_crt.crt
#SSLCertificateChainFile /etc/ssl/icopydoc-com_ca.crt
SSLCertificateKeyFile /etc/ssl/icopydoc-com_key.key
</VirtualHost>
Если вы хотите, чтобы ваш сайт был доступен только по протоколу https то вам нужно будет либо изменить содержимое блока <VirtualHost *:80>, добавив перенаправление, либо в корень сайта загрузить файл .htaccess и настроить редиректы в нём. Подробнее оба варианта будут рассмотрены ниже.
Перезапускаем Апач:
apachectl restart
Пробуем открыть наш сайт по протоколу https. Т.к сертификат самоподписной, то браузере выдал предупреждение, однако сайт благополучно открылся:

Настройка перенаправлений (редиректов) с http на https
Включим модуль перенаправлений на сервере Апач:
sudo a2enmod rewrite
Способ 1. Через .htaccess
перейдём в корневую папку с файлами нашего сайта и создадим в ней файл .htaccess:
nano .htaccess
Добавим правила и сохраним файл:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Способ 2. Через файл conf
Откроем уже привычным нам способом файл конфигурации нашего сайта icopydoc-com.conf и добавим в блок настроек для 80-го порта строку с редиректом:
Redirect / https://www.icopydoc.com/
чтобы было понятнее, вот весь блок целиком:
<VirtualHost *:80>
ServerAdmin admin@icopydoc.com
ServerName icopydoc.com
ServerAlias www.icopydoc.com
Redirect / https://www.icopydoc.com/
DocumentRoot /var/www/html/icopydoc.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Сохраним файл и перезапустим Apache:
sudo service apache2 restart
После этого редирект с http на https будет настроен.
Теперь вы знаете, как настроить домен на сервере Убунту+Апач+SSL.