#1704: Как добавить собственный CA сертификат в Swarmica

Отредактирована: 59 дней назад

В данной статье описана инструкция как добавить собственный CA сертификат в Swarmica.

Инструкция

1. Подключитесь к Swarmica серверу по SSH как root пользователь.

2. Создайте папку /root/swarmica/custom_certs:

mkdir /root/swarmica/custom_certs

3. Загрузите собственный CA сертификат в созданную папку. Если необходимо добавить несколько CA сертификатов их можно объединить в один. Например вот так:

cat CA-cert1.crt CA-cert2.crt > CAcert.crt

Важно, чтобы у каждого из CA сертификатов был в формате PEM, то есть начинался с:

-----BEGIN CERTIFICATE-----

Если сертификаты в DER формате, то перед объединением каждый из таких сертификатов необходимо конвертировать в PEM формат. Например:

openssl x509 -inform DER -in ca.crt -out ca.pem

4. Создайте резервную копию файлов /root/swarmica/docker-compose.yml и /root/swarmica/.env:

cp /root/swarmica/docker-compose.yml{,.backup}
cp /root/swarmica/.env{,.backup}

5. Добавьте volume с CA сертификатом в /root/swarmica/docker-compose.yml в сервис django:

<...>
  django: &django
    image: reg.gl.swd.im/swarmica/backend:${SW_BACKEND_VERSION}
    depends_on:
      - postgres
      - redis
    volumes:
      - swarmica_ai_assistant:/swarmica/swarmica/ai_assistant/articles/:z
      - swarmica_runtime:/swarmica/swarmica/runtime_scripts/:z
      - swarmica_static:/swarmica/swarmica/static:z
      - swarmica_ugc:/swarmica/swarmica/attachments:z
      - swarmica_uploads:/swarmica/swarmica/uploads/:z
      - /root/swarmica/Articles/:/swarmica/swarmica/old_articles/:z
      - /root/swarmica/custom_certs/<CA-cert-name>.crt:/usr/local/share/ca-certificates/<CA-cert-name>.crt:ro  # <--- НУЖНАЯ СТРОКА
    env_file:
      - .env
<...>

где <CA-cert-name>.crt - это имя файла CA сертификата.

6. Добавьте следующие строки в файл /root/swarmica/.env:

REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
SSL_CERT_FILE=/usr/local/share/ca-certificates/<CA-cert-name>.crt

где <CA-cert-name>.crt - это имя файла CA сертификата.

7. Перезапустите Свормики:

docker compose down && docker compose up -d