Настройка защищенного HTTPS соединения для работы DirectumRX через Интернет

16 4

Немного о режимах развертывания DirectumRX

При установке системы DirectumRX инсталлятором пользователю предлагается сделать выбор:

  • установка сервисов DirectumRX для работы по протоколу TCP;
  • установка сервисов DirectumRX для работы по протоколу HTTPS.

В случае настройки системы для работы по протоколу TCP, данные от клиента к серверу передаются в открытом виде по сети, что является небезопасным, такой вариант работы крайне не рекомендуется использовать для удаленного доступа к системе DirectumRX. Работа по протоколу TCP предназначена для работы в локальной сети компании.

В случае, если требуется предоставить доступ к системе DirectumRX через Интернет, необходимо использовать протокол HTTPS.

HTTPS – это фактически расширение протокола HTTP, работающее через шифровальные транспортные механизмы SSL и TLS.

Поскольку SSL-сертификаты в настоящий момент наиболее распространены, в данной статье рассмотрим только работу с механизмом SSL. Подробнее по TLS можно почитать в статье http://club.directum.ru/post/Bezopasnost-Tjuning-HTTPS.aspx.

Что необходимо сделать, чтобы сервер DirectumRX был доступен из интернет?

Доступ к DirectumRX через Интернет настраивается преимущественно для предоставления доступа к системе удаленных или мобильных сотрудников.

Для того, чтобы система DirectumRX была доступна через интернет, необходимо:

1. Получить у текущего Интернет провайдера выделенный внешний IP-адрес, доступный из Интернет, либо использовать один из существующих, чтобы впоследствии настроить на маршрутизаторе перенаправление необходимых портов с этого IP адреса к серверу DirectumRX.

2. Настроить доступ к серверу с развернутыми сервисами DirectumRX по протоколам HTTP (по умолчанию, порт 80) и HTTPS (по умолчанию, порт 443). 

HTTP необходим для обеспечения работы гиперссылок на объекты системы (документы, задачи, задания, уведомления).

HTTPS необходим для обмена данными между клиентом и сервером через зашифрованный канал.

3. Получить доменное имя, по которому может быть определен IP-адрес сервера c развернутыми сервисами DirectumRX. Можно использовать уже существующее доменное имя, либо приобрести у какого-либо регистратора доменных имен.

4. Приобрести SSL сертификат, для полученного на 3м шаге доменного имени.

SSL (Secure Socket Layer) – технология безопасности, которая используется для обеспечения зашифрованного соединения между веб-сервером и браузером. При использовании SSL-протокола информация между сервером и клиентом передается в зашифрованном виде по протоколу HTTPS. Данные шифруются одним ключом из пары ключей, а расшифровываются другим (подробнее об алгоритме RSA).

Клиент DirectumRX, в случае настройки работы сервисов DirectumRX по HTTPS, проверяет валидность SSL сертификата HTTPS соединения.

Если сертификат отсутствует или поврежден, либо не подписан и/или подпись не действительна, то клиент при подключении завершит работу с ошибкой, сообщив о недействительном SSL-сертификате.

Принцип установки зашифрованного соединения представлен на рисунке ниже:

Где можно приобрести SSL-сертификат?

Сертификат может быть приобретен в любом официальном удостоверяющем центре, либо у партнеров этих удостоверяющих центров. Обычно SSL-сертификат можно приобрести на сайте любого регистратора доменных имен.

Какие бывают SSL-сертификаты?

SSL-сертификаты могут быть нескольких типов:

SSL-сертификаты с проверкой домена (Domain Validation) – это сертификаты начального уровня, являются самыми распространенными в мире, а скорость выдачи таких сертификатов варьируется от 2 до 10 минут, зависит от поставщика. Чтобы получить такой сертификат, не требуется специальных документов. Для получения сертификата необходимо подтвердить владение доменом одним из двух способов:

  • проверка через электронную почту (DCV Email) – центр сертификации высылает верификационное письмо, в котором будет ссылка для подтверждения владением домена. При запросе сертификата требуется указать один адрес из золотой пятерки: admin@, administrator@, hostmaster@, postmaster@,webmaster@ в рамках домена, для которого запрашивается SSL-сертификат.
  • проверка при помощи DNS-записи (DNS CNAME) – способ для тех, у кого настроен почтовый сервер, а почта во Whois закрыта приватной регистрацией. Потребуется создать специальную запись в вашем DNS-сервере, центр сертификации автоматически ее проверит.
  • проверка при помощи хеш-файла (HTTP CSR Hash) – пользователю будет предоставлен специальный .txt файл, который необходимо загрузить на свой сервер, при этом центр сертификации убедится в его наличии и сертификат будет выдан. Метод полностью автоматический.

SSL-сертификаты с проверкой компании (Business Validation) – архитектурно такие сертификаты ничем не отличаются от сертификатов начального уровня, но выдаются после более тщательной проверки. Для получения сертификата необходимо выслать документы компании, принять звонок специалиста центра сертификации на корпоративный телефон.

SSL-сертификаты с расширенной проверкой (Extended Validation) – архитектурно такие сертификаты также ничем не отличаются от двух предыдущих, единственное отличие: при входе на сайт, где используется этот сертификат, строка поиска браузера будет подсвечена зеленым цветом. Чаще всего такие сертификаты используются онлайн сервисами банков, чтобы пользователь смог убедиться, что работает в рамках защищенного соединения.  

Какой сертификат выбрать для DirectumRX?

Для настройки удаленного доступа к системе DirectumRX достаточно использовать SSL-сертификат с проверкой домена. Стоимость таких сертификатов в 2016 году колеблется от 2000 до 3000 рублей в год. Ежегодно потребуется повторение процедуры запроса SSL сертификата.

Сертификат можно приобрести на один домен или на группу доменов?

Существует два варианта приобретения сертификатов (справедливо для любого типа сертификата):

  • сертификат на один домен;
  • Wildcard сертификат.

Сертификат на один домен может, соответственно, подтвердить достоверность только одного конкретного домена.

Wildcard сертификат обеспечивает защиту всех прямых поддоменов, указываемого при заказе домена. Например, если сертификат приобретен для домена mycompany.ru, то SSL-сертификат будет защищать все поддомены вида *.mycompany.ru (directum.mycompany.ru, shop.mycompany.ru, office.mycompany.ru и т.д.), но не будет защищать домены 4 уровня, к примеру, *.directum.mycompany.ru.

Если у Вас уже есть Wildcard сертификат, то новый сертификат приобретать не потребуется, достаточно зарегистрировать для существующего защищенного домена необходимый поддомен.

Запрос сертификата у регистратора доменных имен

Первый шаг – определяем тип сертификата и домен

На первом шаге регистратор запросит какой тип и вариант SSL-сертификата будет приобретаться и запросит имя домена, которое необходимо защитить.

Второй шаг – генерируем CSR и оформляем заявку на приобретение сертификата

CSR (Certificate Signing Request) – это зашифрованный запрос на создание и удостоверение сертификата, в котором содержится подробная информация о домене и организации.

Запрос сертификата можно сформировать на сайте регистратора, либо можно сформировать запрос в IIS.

При создании запроса на удостоверение сертификата потребуется указать достоверную информацию об организации или частном лице, от имени которых сертификат запрашивается.

К примеру, запрос на выпуск сертификата в панели управления IIS выглядит следующим образом:

Длину ключа желательно задавать от 2048 бит и выше. Ключи с длиной до 1024 бит в настоящее время не считаются криптостойкими.

После того, как запрос ключа (CSR) сгенерирован, можно приступать к оформлению заявки на выпуск сертификата.

Третий шаг - получение закрытого ключа

Главное отличие от генерации CSR в IIS от генерации CSR на сайте регистратора в том, что при генерации запроса в IIS, закрытый ключ будет сохранен в хранилище IIS.

При генерации CSR на сайте регистратора, будет предложено сохранить файл запроса и текстовый файл с закрытым ключом, в этом случае при импорте сертификата и закрытого ключа в IIS потребуется создать PFX контейнер, об этом расскажем подробнее на пятом шаге.

Четвертый шаг – подтверждение домена и оплата услуги создания и удостоверения SSL-сертификата

Подтверждение домена зависит от типа SSL-сертификата. О способах подтверждения домена подробно написано в разделе «Какие бывают SSL-сертификаты?».

Создание и удостоверение сертификата – это платная услуга. Цены на сертификат базового уровня колеблются от 2 000 до 3 000 руб в год. Ежегодно, если не указано других условий, потребуется повторение процедуры генерации SSL-сертификата.

Пятый шаг – импорт сертификатов в IIS

После того, как удостоверяющий центр проверит достоверность доменного имени и выпустит сертификат, на указанный при подтверждении почтовый адрес будет выслан комплект файлов из открытого ключа, сертификата и файла, содержащего цепочку сертификатов, которые подписывают сертификат.

В случае, если запрос сертификата (CSR) был выполнен в IIS, то необходимо выполнить импорт полученного файла с сертификатом (расширение *.cer) через панель управления IIS:

В результате в IIS будет размещен SSL-сертификат, в котором будет храниться следующая информация:

  • полное (уникальное) имя домена, на который был выдан сертификат;
  • открытый ключ владельца сертификата;
  • дата выдачи SSL-сертификата;
  • дата окончания SSL-сертификата;
  • полное (уникальное) имя центра сертификации;
  • цифровая подпись издателя.

Если же CSR сбыл сформирован на сайте регистратора, то чтобы импортировать набор сертификатов в IIS потребуется сформировать файл в формате PFX.

PFX – это один из стандартов семейства PKCS, который определяет формат файла, с котором будет храниться закрытый ключ, сертификат, открытый ключ и цепочка доверия от сертификата пользователя до корневого сертификата. PFX-файл может быть импортирован в IIS.

Сформировать PFX файл можно, к примеру, с помощью утилиты OpenSSL:

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

, где certificate.cer – файл сертификата

privateKey.key – файл с закрытым ключом

CACert.cer – файл с цепочкой сертификатов удостоверяющего центра.

сertificate.pfx – Новый PFX файл с комплектом сертификатов и ключей.

Полученный PFX файл может быть импортирован через панель управления IIS:

Можно ли не приобретать сертификат у удостоверяющего центра?

Под самоподписанным сертификатом понимают сертификат, изданный и подписанный тем же лицом, которое он идентифицирует.

Преимущества самоподписанного сертификата:

  • Возможность самостоятельно создавать неограниченное количество SSL сертификатов без обращения к поставщикам услуг по регистрации сертификатов.
  • Отсутствие денежных затрат.
  • Сертификат можно быстро сформировать самостоятельно в любое время, на любой срок.

Недостатки самопописанного сертификата:

  • Необходимо обеспечить достоверность сертификата на всех рабочих местах, где установлены клиенты DirectumRX, чтобы исключить возникновение ошибки при проверке сертификата приложением DirectumRX. Для этого потребуется создать собственный корневой сертификат, который подписывает SSL-сертификат, имитируя удостоверяющий центр. Полученный корневой сертификат необходимо будет установить на все рабочие станции пользователей.
  • Требуется наличие необходимых утилит и наличие опыта их использования.
  • Подменить корневой сертификат, который подписывает SSL-сертификат значительно проще, чем поделать цепочку сертификатов удостоверяющих центров, которыми подписан SSL-сертификат, приобретенный у регистратора.

Рассмотрим пример получения самоподписанного сертификата с помощью утилиты OpenSSL:

1. Подготовка закрытого ключа корневого центра сертификации:

openssl genrsa -out rootCA.key 2048

На данном этапе генерируется закрытый ключ корневого сертификата. Какие-либо данные, запрашиваемые при создании сертификата, не являются обязательными.

Полученный закрытый ключ необходимо хранить в недоступном месте, иначе ключ и SSL-сертификат будет скомпрометирован.

2. Создание публичного сертификата корневого центра сертификации:

openssl req -x509 -new -key rootCA.key -days 10000 -out rootCA.crt

При выполенении скрипта, параметр [Common Name] указывать не следует.

В данном случае будет создан корневой сертификат на срок 10000 дней (более 27 лет).

3. Создание закрытого ключа SSL сертификата:

openssl genrsa -out ssl.key 2048

На данном этапе генерируется закрытый ключ SSL-сертификата.

4. Создание запроса на генерацию SSL-сертификата:

openssl req -new -key ssl.key -out ssl.csr

На данном шаге, на основании подготовленного закрытого ключа, генерируется запрос SSL-сертификата.

При создании запроса сертификата будет запрошен параметр [Common Name], в котором нужно указать имя домена, для которого запрашивается сертификат. Это обязательный параметр, без заполнения которого полученный сертификат бесполезен.

5. Создание SSL-сертификата с одновременным подписанием сертификата корневым центром сертификации:

openssl x509 -req -in ssl.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out ssl.crt -days 10000

В результате выполнения данной операции, на основании запроса ключа и корневого сертификата готовится сертификат на 10000 дней (более 27 лет).

6. Создание PFX файла, который содержит SSL-сертификат и закрытый ключ, для импортирования в IIS:

openssl pkcs12 -export -in ssl.crt -inkey ssl.key -out ssl.pfx

Для импортирования в IIS внешнего сертификата требуется подготовить файл в формате PFX.

В результате выполнения вышеуказанных шагов получим два файла, необходимых для дальнейшей настройки:

rootCA.crt - сертификат корневого центра сертификации. Данный сертификат необходимо импортировать в хранилище сертификатов локального компьютера «Доверенные корневые центры сертификации» на всех рабочих местах, на которых будет запущен клиент DirectumRX, а также на сервере DirectumRX.

ssl.pfx – комплект, в котором находится закрытый ключ, SSL-сертификат, открытый ключ и цепочка доверия от сертификата пользователя до корневого сертификата. Данный файл необходимо импортировать в IIS перед установкой DirectumRX на сервере.

Как сменить SSL-сертификат на работающей системе?

В случае повторной генерации SSL-сертификата, либо в случае изменения доменного имени потребуется обновление SSL сертификата.

Замена сертификата для DirectumRX состоит из двух шагов:

  1. Импорт в IIS нового сертификата.
  2. Обновление отпечатка сертификата в конфигурационном файле сервиса приложений DirectumRX.

Отпечаток сертификата можно узнать, открыв содержимое сертификата на вкладке «Состав», в поле «Отпечаток».

Строку с отпечатком сертификата (без пробелов) необходимо скопировать в конфигурационный файл _ConfigSettings.xml (находится по умолчанию в каталоге c:\inetpub\wwwroot\DirectumRX\) в параметр:

  <var name="CERTIFICATE_FIND_VALUE" value="XXXXXXXXXXXXXXXXXXXXXXXXX" />

В случае, если используется сервис NOMAD, потребуется также актуализировать параметр CERTIFICATE_FIND_VALUE в конфигурационном файле _ConfigSettings.xml, который находится в папке сервиса NOMAD.

После изменения конфигурационных файлов необходимо перезапустить пулы приложений DirectumRX, чтобы внесенные изменения применились.

Заключение

Настройка доступа к DirectumRX из Интернет вызывает много вопросов со стороны заказчиков.

В данной статье были представлены ответы на самые часто задаваемые вопросы.

Надеюсь, что статья была вам полезной.

Поделиться своим опытом настройки вы можете в комментариях к этой статье.

Задавайте вопросы в комментариях – буду рад ответить.

16
Авторизуйтесь, чтобы оценить материал.
2
Денис Архипов

https://www.startssl.com/ - the 6th biggest CA in the world

Абсолютно бесплатно и более чем достаточно для RX. 

Денис Архипов

А то по тексту статьи создается впечатление, что сертификаты это обязательно платно и как будто платные чем то отличаются в плане защиты от бесплатных.

з.ы. добавьте возможность редактировать комменты...

Татьяна Филиппова
з.ы. добавьте возможность редактировать комменты...

В скором времени появится такая возможностьcool

Андрей Ардашев
https://www.startssl.com/ - the 6th biggest CA in the world Абсолютно бесплатно и более чем достаточно для RX. 

Вы можете использовать любой сертификат для домена, подтвержденный официальным удостоверяющим центром. 
Бесплатные сертификаты имеют свои недостатки, в том числе отсутствие каких-либо гарантий и поддержки со стороны удостоверяющего центра. 

Авторизуйтесь, чтобы написать комментарий