Примеры настройки WSS соединений
Шаг 1. Публикуем HTTPS порт на внешнем IP
Примечание: Если модуль находится за NAT, то настройки надо делать на соответствующем проксирующем устройстве.
Настройки для FreePBX с внешним адресом:
По умолчанию (если включен модуль Firewall) FreePBX блокирует все неизвестные ему порты. Добавим нужные в настройках файрвола:
пример ссылки на соответствующий пункт менюhttps://freepbx.example.com/admin/config.php?display=firewall
.png)
Шаг 2. В DNS прописываем запись для внешнего адреса, на котором опубликован модуль
Как правило, делается через личный кабинет провайдера, который обслуживает домен клиента.
Шаг 3. Выпускаем SSL сертификат
Если у клиента уже есть сертификат, то копируем файлы (сам сертификат, ключ) на сервер с модулем. Если сертификата нет, то выпускаем (Тут очень много вариантов решения).
Вариант выпуска бесплатного сертификата через FreePBX:
https://freepbx.example.com/admin/config.php?display=certman
.png)
Шаг 4. Прописываем путь до сертификата в модуле

Сохраняем настройки.
Шаг 5. Указываем адрес веб-сокетов куда следует
Ссылка вида wss://freepbx.example.com:8078/…
При перевыпуске сертификата необходимо перезапустить службу, чтобы модуль подгрузил обновленные файлы сертификата.
В данном примере показано, как настроить WSS-соединение с использованием Nginx или Apache
Настройка для Nginx
- Открыть конфигурационный файл Nginx:
nano /etc/nginx/nginx.conf- Добавить конфигурацию для WSS:
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /etc/nginx/ssl/server.crt;
# Или путь к вашему SSL-сертификату от Let's Encrypt
ssl_certificate_key /etc/nginx/ssl/server.key;
location /ws/ {
proxy_pass wss://freepbx.example.com:8078;
# Адрес вашего WebSocket сервера
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
proxy_set_header Origin "";
}
}- Проверить конфигурацию и перезапустить Nginx:
nginx -t
systemctl restart nginxНастройка для Apache
- Открыть конфигурационный файл Apache:
nano /etc/httpd/conf.d/ssl.conf- Добавить или изменить блок конфигурации для WSS:
<VirtualHost *:443>
ServerName your_domain.com
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/server.crt
# Или путь к вашему SSL-сертификату от Let's Encrypt
SSLCertificateKeyFile /etc/httpd/ssl/server.key
<Location /ws/>
ProxyPass "wss://freepbx.example.com:8078/"
# Адрес вашего WebSocket сервера
ProxyPassReverse "wss://freepbx.example.com:8078/"
ProxyPreserveHost On
RequestHeader set Connection "upgrade"
RequestHeader set Upgrade "websocket"
</Location>
</VirtualHost>- Перезапустить Apache:
systemctl restart httpd