Навигатор по разделу:
Установка из дистрибутива
1.1 Инсталляция и настройка PostgreSQL
Версия PostgreSQL поддерживается начиная с postgresql15, так же пример инсталляции на примере Redos8 (https://redos.red-soft.ru/base/redos-7_3/7_3-administation/7_3-smdb-in-ro/7_3-install-postgresql/).
В данной инструкции пример инсталляции приводится на версии postgresql18
Установить пакет необходимой версии (пример версия 18)
dnf install postgresql18-server
Инициализировать БД
sudo postgresql-18-setup initdb
Добавить сервис в автозагрузку и запустить, проверить статус
sudo systemctl enable postgresql-18.service --now sudo systemctl status postgresql-18.service
Разрешить подключение к БД
echo "host all all 127.0.0.1/0 md5" | sudo tee -a /var/lib/pgsql/18/data/pg_hba.conf
Включить прослушивание всех адресов
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /var/lib/pgsql/18/data/postgresql.conf | grep listen_addresses
Зайти под пользователем в psql
sudo -u postgres psql
Добавить пароля для пользователя postgres
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'P@ssw0rd'; # ALTER ROLE \q
Перезагрузить сервис postgres
sudo systemctl restart postgresql-18.service
1.2 Инсталляция и настройка Avanpost CA
Создать пользователя avanpost и задать в
sudo useradd avanpost -m -d /opt/avanpost
Задать пароль:
sudo passwd avanpost
Перейти в пользователя
su - avanpost
Разархивировать архив
sudo unzip Avanpost.CA.v0.1+b30d0c8.zip
Создать папку /opt/avanpost/ca/config
mkdir /opt/avanpost/ca/config
Добавить переменные окружения в /opt/avanpost/ca/config/env
ВНИМАНИЕ
Используются в контексте работы сервиса systemd
CA_DATABASE_URL=postgres://postgres:P@ssw0rd@127.0.0.1:5432/postgres?sslmode=disable
Задать переменные окружения и применить их
ВНИМАНИЕ
Используется для применения миграции выполнив команду, и для дальнейшей работы с бинарным файлом ca в консольном режиме
export CA_DATABASE_URL=postgres://postgres:P@ssw0rd@127.0.0.1:5432/postgres?sslmode=disable
source .bashrc
Проверить вывод переменной:
echo $CA_DATABASE_URL
Выполнить миграцию.
ВНИМАНИЕ
Данный шаг является не обязательным и будет выполнен в рамках работы сервиса systemd.
/opt/avanpost/tools/migratetool/migratetool # 2025/09/01 19:11:57 INFO Database migration completed database="migrating: success" # 2025/09/01 19:11:57 INFO Migration complete
Создать systemd сервис
sudo vi /etc/systemd/system/ca.service
Добавить конфиг
[Unit] Description=Avanpost CA [Service] WorkingDirectory=/opt/avanpost/ca ExecStart=bash -c 'cd /opt/avanpost/tools/migratetool && ./migratetool && cd /opt/avanpost/ca && ./ca' Restart=always RestartSec=10 User=avanpost EnvironmentFile=/opt/avanpost/ca/config/env SyslogIdentifier=ca [Install] WantedBy=multi-user.targe
Перезагрузить demon
sudo systemctl daemon-reload
Добавить в автозагрузку и запустить сервис
sudo systemctl enable --now ca.service
1.3 Инсталляция и настройка Nginx Reverse Proxy
Установить пакет Nginx
sudo dnf install nginx
Создать конфиг systemd
sudo vim /etc/nginx/conf.d/ca.conf
Добавить в него содержимое
server {
listen 80;
server_name ca01.avanpost.local;
location /api/ {
proxy_pass http://127.0.0.1:9999/api/;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /swagger/ {
proxy_pass http://127.0.0.1:9999/swagger/;
}
location /scep/ {
proxy_pass http://127.0.0.1:9999/scep/;
}
location /ocsp/ {
proxy_pass http://127.0.0.1:9999/ocsp/;
}
location /public/ {
proxy_pass http://127.0.0.1:9999/public/;
}
location /wstep/ {
proxy_pass http://127.0.0.1:9999/wstep/;
}
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Отключить Selinux (REDOS)
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive'/ /etc/selinux/config
Перезагрузить ВМ
sudo init 6
"Быстрый старт" в Docker-е
Avanpost CA может быть развернут в виде набора Docker-контейнеров в среде контейнерной виртуализации. Такой способ развертывания является простым и быстрым, что позволяет его эффективно применять в рамках демо, тестирования, пилотирования и т.д.
Внимание
Для поддержки этого способа развертывания на целевом сервере/компьютере должен быть установлен Docker
Порядок установки:
- Разместите файл-архив (Avanpost.CA.v*.zip) с продуктом на сервер в любом удобном месте (например, в home)
- Разархивируйте его в папку и перейдите в нее. Структура внутри будет выглядеть следующим образом:
- В папке compose отредактируйте файл ca.env и задайте переменные:Пример:
# Адрес API CA (только хост) API_URL=change.me # hostname only # Имя пользователя в БД Postgres POSTGRES_USER=change.me # Пароль пользователя в БД Postgres POSTGRES_PASSWORD=change.me # Имя БД Postgres POSTGRES_DB=change.me # Строка подключения к БД Postgres CA_DATABASE_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres:5432/$POSTGRES_DB?sslmode=disable
API_URL=ca.local POSTGRES_USER=admin POSTGRES_PASSWORD=P@ssw0rd POSTGRES_DB=ca CA_DATABASE_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres:5432/$POSTGRES_DB?sslmode=disable
- В папке compose выполните команду запуска проекта:
docker compose -p "avanpost-ca" up -d
- После того, как контейнеры будут созданы и запущены, можно перейти в административный интерфейс Avanpost CA по адресу http://localhost (если Docker установлен локально) или по адресу сервера
