Максим Пачин | Установка и настройка локального https веб-сервера с SSL сертификатом
Максим Пачин | Разработка приложений и программ / Разработка веб-сайтов / Максим Пачин | Установка и настройка локального https веб-сервера с SSL сертификатом

Максим Пачин | Установка и настройка локального https веб-сервера с SSL сертификатом

Для начала настраиваем виртуальные сети VirtualBox. Для этого выбираем в виртуалбокс менеджере –> файл –> инструменты –> менеджер сетей.

виртуальные сети VirtualBox

cоздать виртуальную сеть хоста: VirtualBox Host-Only Ethernet Adapter.

создать виртуальную сеть
Далее нужно задать настройки этой виртуальной сети:
ip адрес: 192.168.56.1
и маску: 255.255.255.0
настройки виртуальной сети
DHCP сервер: выключен.
DHCP сервер виртуальной сети

Теперь нужно создать новую виртуальную машину или импортировать уже имеющуюся конфигурацию.

Как создать новую виртуальную машину я описывал в статье Установка Debian в VirtualBox, поэтому делаем импорт существующей конфигурации.

В той статье мы создавали виртуальную машину с минимальными ресурсами. Для того чтоб устанавливать различные программы: веб-сервер, файловый сервер, базу данных и т.д. нужно больше ресурсов. В данном случае жесткий диск я сделал 8 Гб.

Для этого выбираем в виртуалбокс менеджере –> файл –> импорт конфигураций.

импорт конфигурации VirtualBox

Выбираем файл конфигурации.

импорт конфигурации, выбираем файл

Далее нажимаем «Готово».

Пошел процесс импорта конфигурации VirtualBox.

идет процесс импорта конфигурации VirtualBox

Теперь давайте настроим сетевые адаптеры виртуальной машины.

В настройках машины –> сеть -> Адаптер 1 - выбираем «NAT».

Выберите NAT

В настройках машины –> сеть -> Адаптер 2 - выбираем «Виртуальный адаптер».

Выберите Виртуальный адаптер

Теперь можно запустить виртуальную машину и продолжить настройку.

Нажмите кнопку «Запустить»

Запуск виртуальной машины

Машина запущена. Логинимся. Традиционно логин: root, пароль: 1.

логинимся в debian12

Теперь нам нужно настроить SSH доступ на виртуальную машину. Это нужно чтоб подключаться через WinSCP чтоб пересылать и редактировать файлы в виртуальной машине. И чтоб подключаться с помощью PuTTY для того чтоб работать в консоли в виртуальной машине Debian 12. Прямо в консоли виртуальной машины (не в PuTTY) работать тоже можно, но не удобно, мне не нравится и вам не понравится.

Редактируем конфигурацию ssh, для этого запускаем команду: nano /etc/ssh/sshd_config

Находим параметры, убираем первый символ - # (удаляем комментирование строки) и устанавливаем следующие значения:

ListenAddress 192.168.56.101
PermitRootLogin yes

Должно получиться так:

редактирование конфигурации SSH

Нажимаем: Ctrl + x потом y потом Enter

Еще необходимо настроить статический IP адрес для Адаптера 2

Проверяем настройки сетевых адаптеров командой: ip a

настройки сетевых адаптеров в debian

Нас интересует enp0s8. Запомните это название, сейчас будем его настраивать.

Для этого запускаем команду: nano /etc/network/interfaces

Далее добавляем следующую конфигурацию:

auto enp0s8
iface enp0s8 inet static
address 192.168.56.101
netmask 255.255.255.0

Должно получиться так:

редактирование конфигурации сетевого адаптера debian

Нажимаем: Ctrl + x потом y потом Enter

Перезагружаем сеть командой: systemctl restart networking

Проверяем еще раз настройки сетевых адаптеров командой: ip a

настройки сетевых адаптеров в debian

Видим что адаптер enp0s8 имеет нужный нам ip адрес.

Перезагружаем SSH командой: systemctl restart ssh

Теперь можем подключаться к виртуальной машине с помощью WinSCP.

Если у вас нет этой замечательной бесплатной программы, или вы не знаете как ее устанавливать и настраивать интеграцию программы PuTTY (которая нам тоже понадобится) с программой WinSCP можете ознакомиться с моей инструкцией по этому поводу: Установка и настройка WinSCP + PuTTY для подключения по SFTP и SSH протоколу к серверу

Запускаем WinSCP, выбираем «Новое подключение», заводим:

Имя хоста: 192.168.56.101

Порт: 22 – уже установлен по умолчанию

Имя пользователя: root

Пароль: 1

настройка нового подключения SSH в WinSCP

И потом еще нажимаем на кнопку «Ещё». Там выбираем кодировку utf-8 для имен файлов – «Вкл»

включение использования кодировки utf-8 для имен файлов

Нажимаем «Ок», нажимаем «Сохранить», ставим галку «Запомнить пароль» и нажимаем «Ок»

сохранение конфигурации подключения SSH в WinSCP

Нажимаем «Войти» и подключаемся к нашему серверу.

подключение к серверу SSH в WinSCP

Далее нам потребуется подключаться из WinSCP к серверу используя PuTTY. Поэтому напоминаю: Установка и настройка WinSCP + PuTTY для подключения по SFTP и SSH протоколу к серверу

Теперь что бы устанавливать веб-сервер Apache2 подключаемся к нашему серверу используя консоль PuTTY.

Для этого в WinSCP нажимаем: Команды -> Открыть в PuTTY

открыть в PuTTY

В PuTTY открывается консоль нашего виртуального сервера и запрашивает пароль. Вводим 1 и нажимаем Enter.

консоль виртуального сервера в PuTTY

Обновляем базу пакетов: 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/ мы должны увидеть следующую картину:

тестовая страница Apache2

Теперь нужно дать доступ к папке с файлами сайтов на нашем виртуальном сервере, которые мы будем делать. Сделать это можно с помощью файлового сервера samba.

Устанавливаем samba: apt-get install samba

Теперь нужно настроить samba. Для этого в WinSCP идем по адресу /etc/samba и открываем файл smb.conf

Добавляем в конце файла следующую конфигурацию:

[webserver]
comment = Общая папка
create mask = 0777
directory mask = 0777
force directory mode = 0777
guest ok = Yes
force user = root
path = /var/www
read only = No

Получается так:

конфигурация samba

Сохраняем и закрываем файл.

Перезапускаем 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 с текстом внутри:

<!doctype 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

открыт сайт test.ru

Как видим все работает.

Теперь создадим сертификат для нашего сайта как обычно с помощью скрипта на C# для программы Executor и Compiler - CreateSert - скритп для создания SSL-сертификата.

После создания сертификата для сайта, чтоб сайт открывался по протоколу https, нужно еще создать SSL конфигурацию сайта для Apache2. И да, это так же будем делать с помощью скрипта на C# для программы Executor и Compiler - SitesAvailableSSL - скрипт для создания SSL конфигурации и включения сайта в apache2.

Теперь можно пробовать зайти на сайт по протоколу https.

открыт сайт test.ru по протоколу https

Если у вас что-то не получается настроить, обратитесь за бесплатной консультацией ко мне. Контакты внизу страницы.