Шаг 2. В DNS прописываем запись для внешнего адреса, на котором опубликован модуль
Как правило, делается через личный кабинет провайдера, который обслуживает домен клиента.
Шаг 3. Выпускаем SSL сертификат
Если у клиента уже есть сертификат, то копируем файлы (сам сертификат, ключ) на сервер с модулем. Если сертификата нет, то выпускаем (Тут очень много вариантов решения).
При перевыпуске сертификата необходимо перезапустить службу, чтобы модуль подгрузил обновленные файлы сертификата.
В данном примере показано, как настроить 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>