====== Apache ====== ===== Общее ===== Доступные сайты хранятся в **/etc/apache2/sites-available**, активные в **-||-/sites-enabled**\\ Управление сайтами: # {a2ensite, a2dissite} Для работы в моей вики почему то потребовалось ставить **модуль "php"***, хотя он вроде как включен уже должен быть.., хз\\ $ apt install libapache2-mod-phpX.X
:!: Пример конфига сайта вики ServerName zxcx.ru DocumentRoot /var/www/zxcx.ru order deny,allow allow from all order allow,deny deny from all satisfy all Redirect / https://zxcx.ru/ ServerName zxcx.ru DocumentRoot /var/www/zxcx.ru SSLEngine on SSLCertificateFile /etc/letsencrypt/live/zxcx.ru/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/zxcx.ru/privkey.pem order deny,allow allow from all order allow,deny deny from all satisfy all
**Команды**\\ service apache2 reload apache2ctl configtest === Реинсталяция вики === Перенос вики на другой сайт:\\ * перенес папку **/var/www/* ** со всем содержимым * на новом сервере поставил **certbot** и папку **/etc/letscrypt/** полностью скопировал со старого * скопировал **/etc/apache2/sites-available** и включил все сайты * **a2enmod ssl && apt install libapache2-mod-php7.3** ===== SSL ===== Возможно требуется включение модуля **SSL**\\ # a2enmod ssl ==== Получение сертификата ==== === Настройка apache === При запросе, нужно подтвердить владение доменом, с помощью ТХТ-записи в DNS либо с самого веб сервера, рассматривается второй вариант т.к. есть возможность автопродления. Сертификат выдается на 90 дней.\\ :!: Этот момент под вопросом, с несколькими сайтами были проблемы :!: Создаем общий конфигурационный файл (**/etc/apache2/conf-enabled/lets.conf**), в котором пропишем алиас Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/ в данном примере, запросы для страниц **/.well-known/acme-challenge** всех сайтов мы переводим в каталог **/var/www/html/.well-known/acme-challenge**\\ Проверяем корректность конфигурационного файла и ребутим если все норм: # apachectl configtest # systemctl restart apache2 Далее ставим утилиту **certbot**, с помощью нее процесс работы с сертификатами максимально автоматизирован.\\ # apt install certbot === Получение === Получение сертификата:\\ :!: При первом получении, сайт должен быть **доступен по http** !!!\\ # certbot certonly --webroot --agree-tos --email admin@my-site.ru --webroot-path /var/www/html/my-site.ru/ -d my-site.ru -d www.my-site.ru Создаются 2 файла в **/etc/letsencrypt/live/my-site.ru**.\\ Публичный ключ будет с именем **cert.pem**, а приватный — **privkey.pem** === Автопродление === Для **автопродления** создаем задачу в планировщике (**crontab -e**). Уточните точный путь (**which certbot**) # 0 0 * * 1,4 /usr/bin/certbot renew ==== Настройка сайтов ==== Необходимо проверить наличие модуля **ssl_module** # apachectl -M | grep ssl Команда должна вернуть **ssl_module (shared)**, если нет, тогда включаем командой **a2enmod ssl**.\\ В конфиг сайта добавляем следующее: ServerName my-site.ru DocumentRoot /var/www/html/my-sitq.ru SSLEngine on SSLCertificateFile /etc/letsencrypt/live/my-site.ru/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/my-site.ru/privkey.key Проверяем корректность настроек: # apachectl configtest Применяем новую конфигурацию # apachectl graceful Не забываем **разрешить 443 порт** в файерволе.\\ На данном этапе сайт **уже должен быть доступен по https**.\\ === Редирект === Со старого сайта (блока ) делаем редирект на новый, в итоге должно получится типа того: ServerName my-site.ru DocumentRoot /var/www/html/my-sitq.ru Redirect / https://my-site.ru ServerName my-site.ru DocumentRoot /var/www/html/my-sitq.ru SSLEngine on SSLCertificateFile /etc/letsencrypt/live/my-site.ru/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/my-site.ru/privkey.key