В этой публикации я покажу, как можно выполнить редирект с HTTP на HTTPS для веб клиента CommuniGate Pro. Точнее один из возможных вариантов. Если у вас есть какие-то другие варианты – поделитесь, буду признателен.
Краткое описание особенности веб клиента CommuniGate Pro
Сразу после установки CommuniGate веб клиент доступен только по HTTP. Если вы установите сертификат, то опционально можете включить HTTPS для веб клиента. Однако, это делается вручную для каждой страницы веб скина. По крайней мере я нашел только этот способ.
Для CommuniGate Pro доступно программирование веб-сервера. Именно один из его методов мы и будем использовать, чтобы настроить перенаправление с HTTP на HTTPS.
Редирект с HTTP на HTTPS – пример настройки
Стандартная страница веб скина для клиента Samoware расположена по следующему пути:
/opt/CommuniGate/WebSkins/login.wssp
Именно код этой страницы я буду править. Что нам нужно сделать:
1. Определить – выполнил ли клиент безопасное подключение.
2. Если подлкючение безопасное (HTTPS), то выполняет код страницы login.wssp.
3. Если подключение не безопасное (HTTP), то нужно выполнить редирект с HTTP на HTTPS.
Приступим. Общий шаблон выглядит следующим образом:
<!--%%IF (REQUESTSECURE() == "YES") -->
выполнить код со страницы login.wssp
<!--%%ELSE -->
<HTML>
<HEAD>
<META HTTP-EQUIV=REFRESH CONTENT="0; url=https://com01.%%domainName%%/">
<TITLE>Redirecting to secure interface</TITLE>
</HEAD>
</HTML>
<!--%%ENDIF-->
%%domainName%% – возвращает имя домена CommuniGate Pro – itproblog.ru в моем случае. Поэтому в начале мне пришлось дополнить URL значением “com01.”, т.к. в моем DNS сервер CommuniGate зарегистрирован как com01.itproblog.ru. Если у вас используется какой-то нестандартный порт, то необходимо это указать в url, на который выполняется редирект. Например, https://com01.%%domainName%%:9100/
Функция REQUESTSECURE() возвращает значение “YES”, если клиент выполнил безопасное подключение. В противном случае функция возвращает пустое значение.
Итого, что мы делаем:
1. Открываем файл /opt/CommuniGate/WebSkins/login.wssp на редактирование:
vim /opt/CommuniGate/WebSkins/login.wssp
2. В самое начала файла добавляем строчку:
<!--%%IF (REQUESTSECURE() == "YES") -->

3. В самый конец файла добавляем оставшиеся строчки:
<!--%%ELSE -->
<HTML>
<HEAD>
<META HTTP-EQUIV=REFRESH CONTENT="0; url=https://com01.%%domainName%%/">
<TITLE>Redirecting to secure interface</TITLE>
</HEAD>
</HTML>
<!--%%ENDIF-->

4. Сохраняем изменения.
5. Перезапускаем сервер CommuniGate:
/etc/rc.d/init.d/CommuniGate stop
/etc/rc.d/init.d/CommuniGate start
Проверка редиректа
Теперь попробуем обратиться к нашему веб клиенту по HTTP:
http://com01.itproblog.ru/
Нас сразу же должно перенаправить на HTTPS подключение:
