mtls
Настройка и конфигурация сертификата mTLS для Platform OneEntry с использованием токенов и mTLS, а также развертывание приложения на сервере с Nginx, Docker и GitLab
Часть 1: Настройка mTLS
Защита API
- Используя токен: Сгенерируйте токен в настройках OneEntry и добавьте его в заголовки запроса с параметром 'x-app-token', где значение — это токен.
- Используя mTLS: Включите опцию mTLS в вашей панели управления OneEntry и сгенерируйте сертификат в настройках OneEntry.
Настройка сертификата
- В вашей панели управления перейдите на вкладку 'Доступ' и переключитесь с токена на mTLS.
- Сгенерируйте новый сертификат в OneEntry ('Настройки' -> 'Сертификаты приложений' -> 'Создать новый сертификат').
- Скачайте его на свой компьютер и извлеките в папку 'cert' в корне вашего проекта.
Настройка локальной среды (используя ReactJS в качестве примера)
- Скачайте файл setupProxy.js и сохраните его в папке 'src'.
- Отредактируйте параметр 'target', указав адрес вашего проекта.
- Установите пакет 'http-proxy-middleware': 'npm install http-proxy-middleware'.
- Запустите приложение.
Часть 2: Конфигурация сервера
Подготовка сервера
- Обновите информацию о репозитории: `apt update`.
- Добавьте репозиторий Docker и установите пакеты: `apt install nginx certbot docker-ce pwgen`.
Конфигурация UFW
- Заблокируйте все входящие соединения: `ufw default deny incoming`.
- Разрешите все исходящие соединения: `ufw default allow outgoing`.
- Разрешите входящие TCP-соединения на портах 22, 80 и 443: `ufw allow 22,80,443/tcp`.
Конфигурация SSH
- Отредактируйте конфигурацию демона SSH: `nano /etc/ssh/sshd_config`.
- Установите `PasswordAuthentication no`.
- Перезапустите демон SSH: `systemctl restart ssh`.
Конфигурация Nginx
- Удалите файл конфигурации по умолчанию: `rm /etc/nginx/sites-available/default`
- Создайте новый файл конфигурации: `nano /etc/nginx/sites-available/my_app`.
- Скачайте и отредактируйте конфигурацию Nginx из OneEntry, заменив "your_domain.com" на ваш домен.
- Затем выполните команду: ‘ln -s /etc/nginx/sites-available/my_app /etc/nginx/sites-enabled', заменив "my_app" на имя вашего файла конфигурации.
- Выпустите SSL-сертифи каты с помощью Certbot: `certbot certonly --webroot -w /var/www/html -d your_domain`
- Проверьте автоматическое обновление сертификата: `certbot renew --dry-run`.
- Отредактируйте задачу cron Certbot для автоматической перезагрузки конфигурации Nginx после выдачи сертификатов: ‘nano /etc/cron.d/certbot', заменив последнюю строку на: `echo "0 */12 * * * root certbot -q renew && nginx -s reload" > /etc/cron.d/certbot`
- Раскомментируйте строки в файле конфигурации 'nano /etc/nginx/sites-available/my_app' (где 'my_app' — это имя вашего файла конфигурации).
- Проверьте конфигурацию Nginx: `nginx -t`
- Перезагрузите Nginx после каждого изменения: `nginx -s reload`.