Страница 1 из 2
виртуальные хосты Apache
Добавлено: 09 апр 2023, 12:58
Olej
Эта тема только фиксация конфигурационных файлов виртуальных хостов форума
в связи с поялением новых 2-х URL форума, в альтернативной доменной зоне:
TODO.
Сервер:
Код: Выделить всё
olej@277938:~$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 2e:49:10:b4:b2:02 brd ff:ff:ff:ff:ff:ff
inet 90.156.230.27/24 brd 90.156.230.255 scope global dynamic eth0
valid_lft 74794sec preferred_lft 74794sec
inet6 fe80::2c49:10ff:feb4:b202/64 scope link
valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet6 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771/7 scope global
valid_lft forever preferred_lft forever
inet6 fe80::d86f:9577:d828:cb4d/64 scope link stable-privacy
valid_lft forever preferred_lft forever
IPv6 обеспечивается mesh-сетью
Yggdrasil:
Код: Выделить всё
olej@277938:~$ systemctl status yggdrasil
● yggdrasil.service - yggdrasil
Loaded: loaded (/etc/systemd/system/yggdrasil.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-04 02:23:06 MSK; 5 days ago
Process: 7920 ExecStartPre=/sbin/modprobe tun (code=exited, status=0/SUCCESS)
Main PID: 7921 (yggdrasil)
Tasks: 9 (limit: 1149)
Memory: 20.2M
CGroup: /system.slice/yggdrasil.service
└─7921 /usr/bin/yggdrasil -useconffile /etc/yggdrasil.conf
виртуальные хосты Apache
Добавлено: 09 апр 2023, 13:28
Olej
VirtualHost Examples
Настройка виртуальных хостов Apache
Остановимся на файлах виртуальных хостов. Для удобства они вынесены в отдельные папки:
- /etc/apache2/sites-available
- /etc/apache2/sites-enabled
Мы можем вручную создать ссылку или использовать уже заготовленную команду:
Код: Выделить всё
olej@277938:~$ which a2ensite
olej@277938:~$
root@277938:/etc/apache2/sites-available# which a2ensite
/usr/sbin/a2ensite
Apache2 IPv6 Virtual Host Configuration (Ubuntu Server)
Как включить IPV6 в Apache
written by itisgood 04.03.2019
Код: Выделить всё
SSL Certificates with Apache on Debian & Ubuntu
виртуальные хосты Apache
Добавлено: 09 апр 2023, 13:35
Olej
Olej писал(а): ↑09 апр 2023, 12:58
в связи с поялением новых 2-х URL форума, в альтернативной доменной зоне
Сначала то, что касается основного URL=
https://linux-ru.ru/index.php + то что успешно работает неизменно
года 4 + то что менятья, именно поэтому, никогда
не будет (даже если что-то кажется не самым удачным)...
Это сами конфиг файлы виртуальных хостов (из числа доступных, вообще "заготовленных" ... но не активированных):
Код: Выделить всё
olej@277938:/etc/apache2/sites-available$ pwd
/etc/apache2/sites-available
olej@277938:/etc/apache2/sites-available$ ls -l linux-ru.ru*
-rw-r--r-- 1 root root 420 апр 8 21:31 linux-ru.ru.conf
-rw-r--r-- 1 root root 495 апр 8 21:32 linux-ru.ru-le-ssl.conf
А это - ссылки на эти конфиг файлы, делающие их
актуальными, активирующие их:
Код: Выделить всё
olej@277938:/etc/apache2/sites-enabled$ pwd
/etc/apache2/sites-enabled
olej@277938:/etc/apache2/sites-enabled$ ls -l linux-ru.ru*
lrwxrwxrwx 1 root root 35 дек 21 2019 linux-ru.ru.conf -> ../sites-available/linux-ru.ru.conf
lrwxrwxrwx 1 root root 52 дек 31 11:08 linux-ru.ru-le-ssl.conf -> /etc/apache2/sites-available/linux-ru.ru-le-ssl.conf
виртуальные хосты Apache
Добавлено: 09 апр 2023, 13:47
Olej
Olej писал(а): ↑09 апр 2023, 13:35
конфиг файлы виртуальных хостов
- для HTTP -
http://linux-ru.ru/index.php - такой доступ не допускается, и для него сразу же произойдёт переадресания к HTTPS
Код: Выделить всё
olej@277938:/etc/apache2/sites-available$ cat linux-ru.ru.conf
<VirtualHost *:80>
ServerName linux-ru.ru
ServerAlias www.linux-ru.ru
ServerAdmin guselnikov.maks@gmail.com
DocumentRoot /var/www/linux-ru.ru
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.linux-ru.ru [OR]
RewriteCond %{SERVER_NAME} =linux-ru.ru
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
- для HTTPS -
https://linux-ru.ru/index.php
Код: Выделить всё
olej@277938:/etc/apache2/sites-available$ cat linux-ru.ru-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName linux-ru.ru
ServerAlias www.linux-ru.ru
ServerAdmin guselnikov.maks@gmail.com
DocumentRoot /var/www/linux-ru.ru
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/linux-ru.ru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linux-ru.ru/privkey.pem
</VirtualHost>
</IfModule>
виртуальные хосты Apache
Добавлено: 09 апр 2023, 14:08
Olej
https://linux-ru.lib/index.php - URL в альтернативном домене .lib, разрашение имени реализовано через Emercoin (EmerDNS) (
OpenNIC DNS и EmerCoin):
Код: Выделить всё
olej@R420:~$ host linux-ru.lib
linux-ru.lib has address 90.156.230.27
Виртуальный хост
сделан первоначально так:
Код: Выделить всё
olej@277938:/etc/apache2/sites-available$ pwd
/etc/apache2/sites-available
olej@277938:/etc/apache2/sites-available$ ls -l linux-ru.lib*
-rw-r--r-- 1 root root 1033 апр 9 02:37 linux-ru.lib.conf
Код: Выделить всё
olej@277938:/etc/apache2/sites-enabled$ pwd
/etc/apache2/sites-enabled
olej@277938:/etc/apache2/sites-enabled$ ls -l linux-ru.lib*
lrwxrwxrwx 1 root root 36 апр 7 21:35 linux-ru.lib.conf -> ../sites-available/linux-ru.lib.conf
Конфиг для виртуального хоста
пока записан так:
Код: Выделить всё
root@277938:/etc/apache2/sites-available# cat linux-ru.lib.conf
<VirtualHost *:443>
ServerName linux-ru.lib
ServerAlias www.linux-ru.lib
ServerAdmin olej.tsil@gmail.com
DocumentRoot /var/www/linux-ru.ru
DirectoryIndex index.php
ErrorLog /var/log/apache2/linux-ru.lib-error.log
CustomLog /var/log/apache2/linux-ru.lib-access.log combined
# SSL configuration
SSLEngine On
SSLCertificateChainFile /etc/ssl/certs/linux-ru.lib/fullchain.crt
SSLCertificateFile /etc/ssl/certs/linux-ru.lib/cert.pem
SSLCertificateKeyFile /etc/ssl/certs/linux-ru.lib/privkey.pem
</VirtualHost>
<VirtualHost *:80>
ServerName linux-ru.lib
ServerAlias www.linux-ru.lib
Redirect permanent / https://linux-ru.lib/
</VirtualHost>
Здесь также
пока http://linux-ru.lib переадресуется в
https://linux-ru.lib ... но вот таким другим способом.
Сертификаты SSL от PostMet (см.
TODO) прописаны вот здесь:
Код: Выделить всё
olej@277938:/etc/apache2/sites-available$ ls -l /etc/ssl/certs/linux-ru.lib/
итого 12
-rw-r--r-- 1 root root 1456 апр 9 01:05 cert.pem
-rw-r--r-- 1 root root 3603 апр 9 01:59 fullchain.crt
-rw-r--r-- 1 root root 1704 апр 9 01:15 privkey.pem
P.S. SSL сертификаты для сайтов в
альтернативных доменах могут быть заказаны и получены у PostMet
бесплатно вот по этим ссылкам следуя
http://sites.emc/
If you would like to access emerDNS web-sites through https (for example - this site by URL
https://sites.emc/) without browser's warning window, you need to download and install into your browser or OS the "PostMet Root CA Class 1" SSL-certificate from the page:
http://www.postmet.com/securepost.
To request SSL-certificate for your site within emerDNS, send your CSR (Certificate Signing Request) to Postmet:
https://www.postmet.com/csr/
Это альтернативный DNS, но можете воспользоваться подсказкой
:
Код: Выделить всё
olej@R420:~/2023/Yggdrasil$ host sites.emc
sites.emc has address 208.87.98.37
sites.emc has IPv6 address 2a0b:7080:20::1:2c4e
И далее:
Welcome! Follow the instructions to obtain certificate for your domain(s):
виртуальные хосты Apache
Добавлено: 09 апр 2023, 14:29
Olej
Позже, при тестировании доступа, один из авторов Emercoin и альтернативного DNS разрешения имён высказал следующее соображение:
Про автоматический переброс на https для .lib.
Не уверен, что так - хорошо. Ибо чтоб оно нормально работало, надо людям загрузить корень от Постмета, или включить сайт в исключения для браузера.
Некоторые люди такого не любят - ни того, ни другого. В результате, "гостей форума", которые только по http смотрят - такое решение будет раздражать.
Но то Ваше дело, что лучше.
Я лично считаю, если анонимус пришёл по http, и не хочет логиниться - пусть он свой http и получает. А вот если логин и тп - тогда да, перебрасывать на https.
Но смотрите сами, как оно лучше, с Вашей точки зрения.
Может я и не прав, и принудительный переброс - повышает безопасность, и может так оно и лучше.
И конфиг виртуальных хостов (2-х в одном файле) переписан так:
Код: Выделить всё
root@277938:/etc/apache2/sites-available# cat linux-ru.lib.conf
<VirtualHost 90.156.230.27:443>
ServerName linux-ru.lib
ServerAlias www.linux-ru.lib
ServerAdmin olej.tsil@gmail.com
DocumentRoot /var/www/linux-ru.ru
DirectoryIndex index.php
ErrorLog /var/log/apache2/linux-ru.lib-error.log
CustomLog /var/log/apache2/linux-ru.lib-access.log combined
# SSL configuration
SSLEngine On
SSLCertificateChainFile /etc/ssl/certs/linux-ru.lib/fullchain.crt
SSLCertificateFile /etc/ssl/certs/linux-ru.lib/cert.pem
SSLCertificateKeyFile /etc/ssl/certs/linux-ru.lib/privkey.pem
</VirtualHost>
<VirtualHost 90.156.230.27:80>
ServerName linux-ru.lib
ServerAlias www.linux-ru.lib
ServerAdmin olej.tsil@gmail.com
DocumentRoot /var/www/linux-ru.ru
ErrorLog /var/log/apache2/linux-ru.lib-error.log
CustomLog /var/log/apache2/linux-ru.lib-access.log combined
</VirtualHost>
виртуальные хосты Apache
Добавлено: 09 апр 2023, 14:40
Olej
Olej писал(а): ↑09 апр 2023, 14:29
конфиг виртуальных хостов (2-х в одном файле) переписан так:
У Apache конфиг довольно громоздкий, поэтому после лбой правки проверяем на корректность:
Код: Выделить всё
root@277938:/var/log/apache2# apachectl configtest
Syntax OK
Для вступления любой редактуры конфигов в силу обычно предлагают перезапустить сервис:
Код: Выделить всё
root@277938:/etc/apache2/sites-enabled# systemctl restart apache2
Но для Apache предлагают ещё и такой способ:
Код: Выделить всё
root@277938:/etc/apache2/sites-available# apachectl -k graceful
Я воспользуюсь этим способом ... хотя бы для проверки...
Код: Выделить всё
root@277938:/etc/apache2/sites-available# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-04-09 02:44:51 MSK; 11h ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 27428 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 27432 (apache2)
Tasks: 10 (limit: 1149)
Memory: 345.8M
CGroup: /system.slice/apache2.service
├─27432 /usr/sbin/apache2 -k start
├─31420 /usr/sbin/apache2 -k start
├─31421 /usr/sbin/apache2 -k start
├─31422 /usr/sbin/apache2 -k start
├─31423 /usr/sbin/apache2 -k start
├─31424 /usr/sbin/apache2 -k start
├─31425 /usr/sbin/apache2 -k start
├─31427 /usr/sbin/apache2 -k start
├─31429 /usr/sbin/apache2 -k start
└─31435 /usr/sbin/apache2 -k start
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
виртуальные хосты Apache
Добавлено: 09 апр 2023, 14:48
Olej
Olej писал(а): ↑09 апр 2023, 14:40
воспользуюсь этим способом
Доступность по HTTP (незащищённого соединения на порт 80) проверять могу так:
Код: Выделить всё
olej@R420:~$ wget http://linux-ru.lib:80 -O - > /dev/null
--2023-04-09 15:19:18-- http://linux-ru.lib/
Распознаётся linux-ru.lib (linux-ru.lib)… 90.156.230.27
Подключение к linux-ru.lib (linux-ru.lib)|90.156.230.27|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: нет данных [text/html]
Сохранение в: ‘STDOUT’
- [ <=> ] 51,38K 230KB/s за 0,2s
2023-04-09 15:19:19 (230 KB/s) - записан в stdout [52616]
Только при таком новом конфиге нарушается защищённый доступ по HTTPS и даже перезапукс Apache здесь ничего не добавляет:
Код: Выделить всё
root@277938:/etc/apache2/sites-available# systemctl restart apache2
root@277938:/etc/apache2/sites-available# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-04-09 14:48:11 MSK; 1s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 32258 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 32263 (apache2)
Tasks: 6 (limit: 1149)
Memory: 24.5M
CGroup: /system.slice/apache2.service
├─32263 /usr/sbin/apache2 -k start
├─32264 /usr/sbin/apache2 -k start
├─32265 /usr/sbin/apache2 -k start
├─32266 /usr/sbin/apache2 -k start
├─32267 /usr/sbin/apache2 -k start
└─32268 /usr/sbin/apache2 -k start
апр 09 14:48:11 277938.local systemd[1]: Starting The Apache HTTP Server...
апр 09 14:48:11 277938.local systemd[1]: Started The Apache HTTP Server.
виртуальные хосты Apache
Добавлено: 09 апр 2023, 15:20
Olej
Olej писал(а): ↑09 апр 2023, 14:48
Только при таком новом конфиге нарушается защищённый доступ по HTTPS и даже перезапукс Apache здесь ничего не добавляет:
Переписал (незначительно) конфиг:
Код: Выделить всё
olej@277938:/etc/apache2/sites-enabled$ cat linux-ru.lib.conf
<VirtualHost *:443>
ServerName linux-ru.lib
ServerAlias www.linux-ru.lib
ServerAdmin olej.tsil@gmail.com
DocumentRoot /var/www/linux-ru.ru
DirectoryIndex index.php
ErrorLog /var/log/apache2/linux-ru.lib-error.log
CustomLog /var/log/apache2/linux-ru.lib-access.log combined
# SSL configuration
SSLEngine On
SSLCertificateChainFile /etc/ssl/certs/linux-ru.lib/fullchain.crt
SSLCertificateFile /etc/ssl/certs/linux-ru.lib/cert.pem
SSLCertificateKeyFile /etc/ssl/certs/linux-ru.lib/privkey.pem
</VirtualHost>
<VirtualHost *:80>
ServerName linux-ru.lib
ServerAlias www.linux-ru.lib
ServerAdmin olej.tsil@gmail.com
DocumentRoot /var/www/linux-ru.ru
ErrorLog /var/log/apache2/linux-ru.lib-error.log
CustomLog /var/log/apache2/linux-ru.lib-access.log combined
</VirtualHost>
Не знаю почему так (и уже разбираться задолбался, надоело...) но:
Это защищённое HTTPS
https://linux-ru.ru/index.php ... как и было:
- Снимок экрана от 2023-04-09 15-12-16.png (232.85 КБ) 449 просмотров
Это защищённое HTTPS
https://linux-ru.lib/index.php ... но в браузере не добавлен корневой сертификат, поэтому ему пришлось (пока) добавить исключение безопасности:
- Снимок экрана от 2023-04-09 15-14-14.png (231.76 КБ) 449 просмотров
Это незащищённое HTTP соединение - залогиниться тут не получится!
- Снимок экрана от 2023-04-09 15-12-42.png (219.64 КБ) 449 просмотров
P.S. Кстати... Все 3 картинки выше скопированы
из соседних вкладок одного браузера Firefox - из-за разных URL доступа к одному каталогу данных... А вот с одного URL HTTPS
залогинится под разными именами в разных вкладках
не получится.
виртуальные хосты Apache
Добавлено: 09 апр 2023, 15:26
Olej
Olej писал(а): ↑09 апр 2023, 15:20
Это защищённое HTTPS
https://linux-ru.lib/index.php ... но в браузере не добавлен корневой сертификат, поэтому ему пришлось (пока) добавить исключение безопасности:
Код: Выделить всё
olej@R420:~$ wget https://linux-ru.lib:443 -O - > /dev/null
--2023-04-09 15:19:04-- https://linux-ru.lib/
Распознаётся linux-ru.lib (linux-ru.lib)… 90.156.230.27
Подключение к linux-ru.lib (linux-ru.lib)|90.156.230.27|:443... соединение установлено.
ОШИБКА: невозможно проверить сертификат linux-ru.lib, выпущенный ‘CN=CA Signing Certificate,OU=pki-tomcat,O=lvm.postmet.com Security Domain’:
Обнаружен самостоятельно подписанный сертификат.
Для небезопасного подключения к linux-ru.lib используйте параметр «--no-check-certificate».
Вот так
Отлуп
"Обнаружен самостоятельно подписанный сертификат."
Нужно иметь установленным корневой сертификат от PostMet
Код: Выделить всё
olej@R420:~$ wget https://linux-ru.lib:443 --no-check-certificate -O - > /dev/null
--2023-04-09 15:18:54-- https://linux-ru.lib/
Распознаётся linux-ru.lib (linux-ru.lib)… 90.156.230.27
Подключение к linux-ru.lib (linux-ru.lib)|90.156.230.27|:443... соединение установлено.
ПРЕДУПРЕЖДЕНИЕ: невозможно проверить сертификат linux-ru.lib, выпущенный ‘CN=CA Signing Certificate,OU=pki-tomcat,O=lvm.postmet.com Security Domain’:
Обнаружен самостоятельно подписанный сертификат.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: нет данных [text/html]
Сохранение в: ‘STDOUT’
- [ <=> ] 51,38K 225KB/s за 0,2s
2023-04-09 15:18:55 (225 KB/s) - записан в stdout [52617]