# Как установить свои SSL/TLS сертификаты для веб-интерфейса Swarmica?
# Симптомы

Как установить собственные SSL сертификаты вместо Let's Encrypt?

# Решение

### Подготовьте файлы сертификатов

Чтобы установить собственные сертификаты, вам понадобится получить архив с сертификатами и ключами от авторизованного провайдера SSL сертификатов.&#x20;

Обычно архив содержит несколько файлов:

`yourdomain.tld.crt `- сертификат для вашего адреса

`yourdomain.tld.key` - ключ, который использовался для создания сертификата

Скопируйте файлы  `yourdomain.tld.crt` и `yourdomain.tld.key` в папку `certs`.

### Установка сертификатов

1.  Отредактируйте файл /root/swarmica/traefik.yml, чтобы получилось так (заменяя строки yourdomain.tld.\*  на названия ваших файлов):
    ```txt
    tls:
      certificates:
        - certFile: "/etc/traefik/certs/yourdomain.tld.crt"
          keyFile: "/etc/traefik/certs/yourdomain.tld.key"
          stores:
            - default
      stores:
        default:
          defaultCertificate:
            certFile: "/etc/traefik/certs/yourdomain.tld.crt"
            keyFile: "/etc/traefik/certs/yourdomain.tld.key"
      options:
        default:
          minVersion: VersionTLS12
          cipherSuites:
           # Recommended ciphers for TLSv1.2
           - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
           - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
           - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
           # Recommended ciphers for TLSv1.3
           - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
           - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
           - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
        tlsv13only:
          minVersion: VersionTLS13
    ```
2.  Создайте резервную копию файла `/root/swarmica/docker-compose.yml`:
    ```bash
    cp /root/swarmica/docker-compose.yml{,.backup}
    ```
3.  Отредактируйте файл `/root/swarmica/docker-compose.yml` для сервиса `traefik`:
    ```txt
      traefik:
        image: traefik:latest
        restart: always
        depends_on:
          - django
        volumes:
          - ./certs:/etc/traefik/certs:ro
          - ./traefik.yml:/etc/traefik/dynamic.yml:ro
          - traefik_data:/letsencrypt:z
          - /var/run/docker.sock:/var/run/docker.sock:ro
        command:
          - "--providers.docker=true"
          - "--providers.docker.exposedbydefault=false"
          - "--providers.file=true"
          - "--providers.file.filename=/etc/traefik/dynamic.yml"
          - "--log.level=INFO"
          - "--entrypoints.web.address=:80"
          - "--entrypoints.web.http.redirections.entrypoint.to=web-secure"
          - "--entrypoints.web-secure.address=:443"
          - "--api.dashboard=false"
        ports:
          - "0.0.0.0:80:80"
          - "0.0.0.0:443:443"
    ```
4.  Замените строчки в `/root/swarmica/docker-compose.yml` где содержится `tls.certresolver=letsencrypt`, чтобы они заканчивались на `tls.options=default`
5.  Перезагрузите Swarmica:
    ```bash
    docker compose down
    docker compose up -d
    ```