Максим Пачин | Установка и настройка локального https веб-сервера с SSL сертификатом
Для начала настраиваем виртуальные сети VirtualBox. Для этого выбираем в виртуалбокс менеджере –> файл –> инструменты –> менеджер сетей.
cоздать виртуальную сеть хоста: VirtualBox Host-Only Ethernet Adapter.
ip адрес: 192.168.56.1
и маску: 255.255.255.0
Теперь нужно создать новую виртуальную машину или импортировать уже имеющуюся конфигурацию.
Как создать новую виртуальную машину я описывал в статье Установка Debian в VirtualBox, поэтому делаем импорт существующей конфигурации.
Для этого выбираем в виртуалбокс менеджере –> файл –> импорт конфигураций.
Выбираем файл конфигурации.
Далее нажимаем «Готово».
Пошел процесс импорта конфигурации VirtualBox.
Теперь давайте настроим сетевые адаптеры виртуальной машины.
В настройках машины –> сеть -> Адаптер 1 - выбираем «NAT».
В настройках машины –> сеть -> Адаптер 2 - выбираем «Виртуальный адаптер».
Теперь можно запустить виртуальную машину и продолжить настройку.
Нажмите кнопку «Запустить»
Машина запущена. Логинимся. Традиционно логин: root, пароль: 1.
Теперь нам нужно настроить SSH доступ на виртуальную машину. Это нужно чтоб подключаться через WinSCP чтоб пересылать и редактировать файлы в виртуальной машине. И чтоб подключаться с помощью PuTTY для того чтоб работать в консоли в виртуальной машине Debian 12. Прямо в консоли виртуальной машины (не в PuTTY) работать тоже можно, но не удобно, мне не нравится и вам не понравится.
Редактируем конфигурацию ssh, для этого запускаем команду: nano /etc/ssh/sshd_config
Находим параметры, убираем первый символ - # (удаляем комментирование строки) и устанавливаем следующие значения:
PermitRootLogin yes
Должно получиться так:
Нажимаем: Ctrl + x потом y потом Enter
Еще необходимо настроить статический IP адрес для Адаптера 2
Проверяем настройки сетевых адаптеров командой: ip a
Нас интересует enp0s8. Запомните это название, сейчас будем его настраивать.
Для этого запускаем команду: nano /etc/network/interfaces
Далее добавляем следующую конфигурацию:
iface enp0s8 inet static
address 192.168.56.101
netmask 255.255.255.0
Должно получиться так:
Нажимаем: Ctrl + x потом y потом Enter
Перезагружаем сеть командой: systemctl restart networking
Проверяем еще раз настройки сетевых адаптеров командой: ip a
Видим что адаптер enp0s8 имеет нужный нам ip адрес.
Перезагружаем SSH командой: systemctl restart ssh
Теперь можем подключаться к виртуальной машине с помощью WinSCP.
Если у вас нет этой замечательной бесплатной программы, или вы не знаете как ее устанавливать и настраивать интеграцию программы PuTTY (которая нам тоже понадобится) с программой WinSCP можете ознакомиться с моей инструкцией по этому поводу: Установка и настройка
Запускаем WinSCP, выбираем «Новое подключение», заводим:
Имя хоста: 192.168.56.101
Порт: 22 – уже установлен по умолчанию
Имя пользователя: root
Пароль: 1
И потом еще нажимаем на кнопку «Ещё». Там выбираем кодировку utf-8 для имен файлов – «Вкл»
Нажимаем «Ок», нажимаем «Сохранить», ставим галку «Запомнить пароль» и нажимаем «Ок»
Нажимаем «Войти» и подключаемся к нашему серверу.
Далее нам потребуется подключаться из WinSCP к серверу используя PuTTY. Поэтому напоминаю: Установка и настройка
Теперь что бы устанавливать веб-сервер Apache2 подключаемся к нашему серверу используя консоль PuTTY.
Для этого в WinSCP нажимаем: Команды -> Открыть в PuTTY
В PuTTY открывается консоль нашего виртуального сервера и запрашивает пароль. Вводим 1 и нажимаем Enter.
Обновляем базу пакетов: apt-get update
Устанавливаем Apache 2: apt-get install apache2
Устанавливаем PHP и его модули, которые я использую: apt-get install libapache2-mod-php php php-common php-curl php-dev php-mysql php-gd php-xmlrpc php-mbstring
Для https нужно: a2enmod ssl
Теперь если в браузере хостовой системы зайти по адресу http://192.168.56.101/ мы должны увидеть следующую картину:
Теперь нужно дать доступ к папке с файлами сайтов на нашем виртуальном сервере, которые мы будем делать. Сделать это можно с помощью файлового сервера samba.
Устанавливаем samba: apt-get install samba
Теперь нужно настроить samba. Для этого в WinSCP идем по адресу /etc/samba и открываем файл smb.conf
Добавляем в конце файла следующую конфигурацию:
comment = Общая папка
create mask = 0777
directory mask = 0777
force directory mode = 0777
guest ok = Yes
force user = root
path = /var/www
read only = No
Получается так:
Сохраняем и закрываем файл.
Перезапускаем samba: systemctl restart smb
Теперь в проводнике хостовой системы набираем \192.168.56.101 и видим такую картину:
На нашем виртуальном сервере папка /var/www – это и есть папка в которой будем размещать сайты. А в проводнике хостовой системы по адресу \192.168.56.101 мы видим эту папку под именем webserver, так как прописали это имя в конфигурационном файле smb.conf
Теперь давайте создадим сайт для теста. Назовем его test.ru
Для этого в проводнике хостовой системы заходим по адресу \192.168.56.101\webserver и создаем там папку test.ru
В папке \192.168.56.101\webserver\test.ru создаем две папки: www и logs для файлов сайта и логов сайта соответственно.
В папке \192.168.56.101\webserver\test.ru\www создаем с помощью блокнота текстовый файл index.html с текстом внутри:
<head>
<meta charset="UTF-8" />
<title>Тестовый сайт</title>
</head>
<body>
Привет мир!
</body>
</html>
</div>
Теперь нужно создать конфигурацию для этого сайта test.ru в веб-сервере Apache2 и включить сайт. Это можно сделать вручную, но я предпочитаю использовать скрипт SitesAvailable для программы Executor и Compiler. Подробно, понятно, просто я описываю это здесь: SitesAvailable – скрипт для создания конфигурации и включения сайта в apache2
Теперь чтоб зайти на сайт test.ru в браузере, нужно отредактировать файл C:\Windows\System32\drivers\etc\hosts
Чтоб удалось сохранить файл hosts, редактировать его нужно от имени администратора. Но мне не нравится лазить в эту системную папку и редактировать вручную в блокноте этот файл, да еще нужно не забыть запускать блокнот в режиме администратора. Для этой цели я использую свою маленькую программу HostsEdit. Ознакомьтесь с инструкцией к HostsEdit здесь: HostsEdit – программа для редактирования файла hosts.
С помощью программы HostsEdit вносим домен test.ru в системный файл hosts и после этого можем проверить как наш тестовый сайт открывается в браузере. Для этого в строке браузера наберем: http://test.ru
Как видим все работает.
Теперь создадим сертификат для нашего сайта как обычно с помощью скрипта на C# для программы Executor и Compiler - CreateSert - скритп для создания SSL-сертификата.
После создания сертификата для сайта, чтоб сайт открывался по протоколу https, нужно еще создать SSL конфигурацию сайта для Apache2. И да, это так же будем делать с помощью скрипта на C# для программы Executor и Compiler - SitesAvailableSSL - скрипт для создания SSL конфигурации и включения сайта в apache2.
Теперь можно пробовать зайти на сайт по протоколу https.
Если у вас что-то не получается настроить, обратитесь за бесплатной консультацией ко мне. Контакты внизу страницы.