Как привязать домен к серверу Ubuntu + Apache (инструкция)

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

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

Настройка домена на сервере Ubuntu плюс Apache

Открываем созданный на предыдущем шаге файл 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. Т.к сертификат самоподписной, то браузере выдал предупреждение, однако сайт благополучно открылся:

Сайт на Апач открылся по протоколу 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.

Рейтинг: 5

2022-10-18 | | 0 комментариев | Полезности | ,