Редирект с HTTP на HTTPS для веб клиента CommuniGate Pro

В этой публикации я покажу, как можно выполнить редирект с HTTP на HTTPS для веб клиента CommuniGate Pro. Точнее один из возможных вариантов. Если у вас есть какие-то другие варианты – поделитесь, буду признателен.

Краткое описание особенности веб клиента CommuniGate Pro

Сразу после установки CommuniGate веб клиент доступен только по HTTP. Если вы установите сертификат, то опционально можете включить HTTPS для веб клиента. Однако, это делается вручную для каждой страницы веб скина. По крайней мере я нашел только этот способ.

Для CommuniGate Pro доступно программирование веб-сервера. Именно один из его методов мы и будем использовать, чтобы настроить перенаправление с HTTP на HTTPS.

Редирект с HTTP на HTTPS – пример настройки

Рекомендации от коллег из комментариев – лучше создать папку WebSkins в /var/CommuniGate/ и скопировать туда login.wssp из папки /opt/CommuniGate/WebSkins/ и уже редактировать по статье, тогда при обновлении Communigate не придется заново вносить изменения.

Стандартная страница веб скина для клиента 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 подключение:

Редирект с HTTP на HTTPS для веб клиента CommuniGate Pro: 5 комментариев

  1. Спасибо за статью и не только за эту. Внесу свои “5 копеек”: Лучше создать папку WebSkins в / var/CommuniGate/ и скопировать туда login.wssp из папки /opt/CommuniGate/WebSkins/ и уже редактировать по статье, тогда при обновлении Communigate не придется заново вносить изменения.

    1. Вам спасибо за полезный совет! Комментарии – это лучшая обратная связь. Очень часто коллеги делятся какими-то хитростями или личным опытом.
      Дополню материал статьи, т.к. всегда стараюсь полезные комментарии явно включать в текст публикации.

  2. Спасибо за статью! Однако, в процессе настройки почтового сервера было замечено, что редирект работает только в случае, если Layout (Вид интерфейса) выбран Basic. Если, например, выбран Samoware, то редиректа не будет. А есть предположения, в каких файлах можно отредактировать редирект для Самовара?

    1. Странно, насколько помню я как раз на Samoware тестировал. Возможно, что в последних версия какие-то изменения были. Постараюсь протестировать.

    2. Я, кажется, понял про что вы говорили. Я выполнил пару тестов на стенде. Если перейти на корень сайта, например http://mail.itproblog.ru, то происходит редирект на безопасное подключение – https://mail.itproblog.ru.

      Но вот если, например, для путей, отличных от корневых, редирект уже не работает. Напрмер, для такого пути редирект уже не отработает – http://mail.itproblog.ru/Session/8-ZAubf74G8ycIBtPbyRZ7/Hello.wssp?
      Причем, я даже попробовал вот это решение – https://www.communigate.ru/CommuniGatePro/russian/HowTo.html#toHTTPS Поведение тоже самое. Решение от вендора выполняет настройку редиректа немного по другому, но общий принцип тот же.
      Предположу, что нужно еще со страницей Hello.wssp аналогичные действия по редиректу выполнить. Я вот, честно, точно не помню – на момент подготовки материала статья повоедение было такое же или нет. Но, скорее всего, так и было, как я описал выше.

      Если вам нужен редирект, который отрабатывает в любом случае, то я бы посмотрел в строну, скажем, nginx или ему подобных решений. Вот тут есть типовой пример – https://itproblog.ru/%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d1%83%d1%80%d0%b0%d1%86%d0%b8%d0%b8-ngixn/#Primer_publikacii_CommuniGate_Pro

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *