service:trueconf
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:trueconf [20.12.2022 13:12] – [Выпуск SSL-сертификата] viacheslav | service:trueconf [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== TrueConf ====== | ||
+ | Системные требования: | ||
+ | Ключ привязан к: | ||
+ | * Доменному имени | ||
+ | * Hard disk size | ||
+ | * Serial number (SMART) | ||
+ | * MAC address of the network card (MAC) | ||
+ | * Physical memory (MEM) size | ||
+ | |||
+ | Документация: | ||
+ | База знаний: | ||
+ | |||
+ | ===== Установка ===== | ||
+ | ==== Linux ==== | ||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | === Debian 11 === | ||
+ | <code bash> | ||
+ | apt install curl gnupg2 -y | ||
+ | echo "deb http:// | ||
+ | curl http:// | ||
+ | apt update && apt install trueconf-server -y | ||
+ | </ | ||
+ | |||
+ | ++++ Docker (неактуально) | | ||
+ | ==== Docker ==== | ||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | Примерный docker-compose.yaml | ||
+ | <file yaml docker-compose.yaml> | ||
+ | version: ' | ||
+ | services: | ||
+ | trueconf: | ||
+ | image: trueconf/ | ||
+ | container_name: | ||
+ | restart: unless-stopped | ||
+ | environment: | ||
+ | ADMIN_USER: admin | ||
+ | ADMIN_PASSWORD: | ||
+ | ServerID: XXXXXX | ||
+ | Serial: XXXX-XXXX-XXXX | ||
+ | ServerName: trueconf.domain.ru | ||
+ | ports: | ||
+ | - 80:80 | ||
+ | - 443:443 | ||
+ | - 4307:4307 | ||
+ | - 53000-55000: | ||
+ | volumes: | ||
+ | - / | ||
+ | - / | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | При запуске ошибка: | ||
+ | <code bash> | ||
+ | ERROR: for trueconf | ||
+ | ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information. | ||
+ | If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60). | ||
+ | </ | ||
+ | Решение: | ||
+ | < | ||
+ | #.env | ||
+ | COMPOSE_HTTP_TIMEOUT=200 | ||
+ | </ | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | ===== Настройка ===== | ||
+ | ==== Реверс-прокси ==== | ||
+ | Из переписки с техподдержкой: | ||
+ | |||
+ | Могу привести рабочий пример настройки Nginx: (в инструкции использован TCS в докер так как ранее клиентам предоставлял данную инструкцию конкретно для контейнера) | ||
+ | В случаи если Nginx и TCS сервер находятся на разных машинах менять стандартные порты 443 и 80 на кастомные нет смысла. | ||
+ | |||
+ | 1) Докер контейнер | ||
+ | |||
+ | <code bash> | ||
+ | sudo docker run -d -p 8888:80 -p 4443:443 -p 4307:4307 -e ADMIN_USER=tc_admin -e ADMIN_PASSWORD=12345 -v / | ||
+ | </ | ||
+ | |||
+ | 2) Прослушиваемые порты на хостовой машине с докер контейнером TCS | ||
+ | |||
+ | <code bash> | ||
+ | netstat -nltp | ||
+ | |||
+ | tcp 0 0 0.0.0.0: | ||
+ | tcp 0 0 0.0.0.0: | ||
+ | </ | ||
+ | |||
+ | 3) Порты настроенные в веб панели TCS, 80 и 443 (сертификат SSL в NGINX и в TCS используется одинаковый *.tcsupport.loc ) | ||
+ | |||
+ | 4) Конфиг Nginx | ||
+ | |||
+ | <code bash> | ||
+ | server { | ||
+ | listen 80 default_server; | ||
+ | listen [::]:80 default_server; | ||
+ | listen 443 ssl default_server; | ||
+ | listen [::]:443 ssl default_server; | ||
+ | |||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | root / | ||
+ | index index.html index.htm; | ||
+ | |||
+ | server_name docker.tcsupport.loc; | ||
+ | location / { | ||
+ | proxy_pass https:// | ||
+ | proxy_ssl_verify off; | ||
+ | proxy_set_header Host $host; | ||
+ | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
+ | proxy_set_header X-Real-IP $remote_addr; | ||
+ | } | ||
+ | |||
+ | location /websocket/ { | ||
+ | proxy_pass http:// | ||
+ | proxy_http_version 1.1; | ||
+ | proxy_set_header Upgrade $http_upgrade; | ||
+ | proxy_set_header Connection " | ||
+ | proxy_set_header Host $host; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | TCP соединение поднимается на 443 порт (то есть на Nginx). WebRTC работает, | ||
+ | |||
+ | ==== Нет соединения с сервером (через реверс-прокси) ==== | ||
+ | Вопрос: | ||
+ | {{: | ||
+ | |||
+ | Ответ техподдержки: | ||
+ | |||
+ | ++++ Соберите дамп из консоли браузера: | ||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | ++++ | ||
+ | |||
+ | Пришлите полученный .har файл. | ||
+ | |||
+ | ===== SSL-сертификат ===== | ||
+ | Пути | ||
+ | < | ||
+ | # сам сертификат | ||
+ | / | ||
+ | # ключ | ||
+ | / | ||
+ | </ | ||
+ | Если сертификат выбран уже свой через веб-конфигуратор, | ||
+ | |||
+ | Конфиги: | ||
+ | |||
+ | <file bash listen.conf> | ||
+ | Listen 80 | ||
+ | Define ssl_port 443 | ||
+ | </ | ||
+ | |||
+ | <file bash config.ssl> | ||
+ | < | ||
+ | SSLEngine On | ||
+ | SSLCertificateFile "/ | ||
+ | SSLCertificateKeyFile "/ | ||
+ | SSLProtocol +TLSv1.2 +TLSv1.3 | ||
+ | SSLCipherSuite | ||
+ | SSLHonorCipherOrder on | ||
+ | SSLCompression | ||
+ | SSLSessionTickets | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Выпуск SSL-сертификата ==== | ||
+ | ++++ Выпуск делается один раз, больше не надо | | ||
+ | <code bash> | ||
+ | # Остановить веб-сервис, | ||
+ | systemctl stop trueconf-web | ||
+ | # Выпустить сертификат | ||
+ | certbot certonly --standalone --keep --agree-tos --expand -m ssl@example.com -d tconf.example.com | ||
+ | |||
+ | # Saving debug log to / | ||
+ | # Plugins selected: Authenticator standalone, Installer None | ||
+ | # Requesting a certificate for tconf.example.com | ||
+ | # Performing the following challenges: | ||
+ | # http-01 challenge for tconf.example.com | ||
+ | # Waiting for verification... | ||
+ | # Cleaning up challenges | ||
+ | |||
+ | # IMPORTANT NOTES: | ||
+ | # - Congratulations! Your certificate and chain have been saved at: | ||
+ | # / | ||
+ | # Your key file has been saved at: | ||
+ | # / | ||
+ | # Your certificate will expire on 2023-03-20. To obtain a new or | ||
+ | # tweaked version of this certificate in the future, simply run | ||
+ | # certbot again. To non-interactively renew *all* of your | ||
+ | # certificates, | ||
+ | |||
+ | # Скопировать сертификаты и дать права Труконфу | ||
+ | cp / | ||
+ | cp / | ||
+ | chown trueconf: | ||
+ | # Запустить веб-сервис | ||
+ | systemctl start trueconf-web | ||
+ | </ | ||
+ | [[https:// | ||
+ | ++++ | ||
+ | |||
+ | ==== Обновление SSL-сертификата ==== | ||
+ | Настройка автообновления в systemd.timer | ||
+ | <file bash / | ||
+ | [Unit] | ||
+ | Description=Run certbot weekly | ||
+ | |||
+ | [Timer] | ||
+ | # В 8:30 по понедельникам | ||
+ | OnCalendar=Mon *-*-* 08:30:00 | ||
+ | # | ||
+ | Persistent=true | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=timers.target | ||
+ | </ | ||
+ | |||
+ | <file bash / | ||
+ | [Unit] | ||
+ | Description=Certbot | ||
+ | Documentation=file:/// | ||
+ | Documentation=https:// | ||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | ExecStart=/ | ||
+ | --pre-hook ' | ||
+ | --deploy-hook 'cp / | ||
+ | --post-hook ' | ||
+ | PrivateTmp=true | ||
+ | </ | ||
+ | [[https:// | ||
+ | https:// |