Подключение к Docsvision по HTTPS
|
Docsvision не поддерживает безопасную работу по HTTP, поэтому настройка HTTPS является обязательной даже в закрытых контурах. При работе по HTTP легко реализуема атака MiTM, в результате которой могут быть компрометированы учетные данные, перехвачена сессия и раскрыта вся передаваемая по сети информация. |
См. также "Советы по безопасной настройке TLS".
Модули и сервисы Docsvision, работающие по сети (например, Сервер приложений, Web-клиент, Управление процессами и Консоль управления Docsvision и другие) по умолчанию не используют HTTPS, защищённое соединение необходимо настраивать после установки системы. Для безопасного подключения необходим сертификат, который можно приобрести в одном из удостоверяющих центров либо сгенерировать самоподписанный сертификат. В зависимости от операционной системы способ установки сертификата отличается. Для Linux сертификат устанавливается в папку, а для Windows — в хранилище.
После установки системы и получения сертификата требуется настроить доступ к Docsvision по HTTPS. Все web-сервисы Docsvision нужно настроить с использованием HTTPS, включая:
-
Web-клиент
-
Сервер приложений (Платформа)
-
Сервис настроек
-
Консоль управления Docsvision
-
Менеджер решений
Для настройки нужно отредактировать конфигурационный файл каждого сервиса — appsettings.json. Например, для Сервера приложений файл располагается по адресу /usr/lib/docsvision/platform/appsettings.json для Linux и C:\Program Files\Docsvision\Platform\appsettings.json для Windows. Аналогично для других сервисов: /usr/lib/docsvision/имя-сервиса/appsettings.json в Linux и C:\Program Files\Docsvision\имя-сервиса\appsettings.json для Windows.
-
Конфигурация для Linux
-
Конфигурация для Windows
{
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "https://*:5020", (1)
"Certificate": {
"Path": "/folder/certificate.crt", (2)
"KeyPath": "/folder/docsvision.key" (3)
}
}
}
}
}
| 1 | Url — адрес и порт для доступа по HTTPS. При такой конфигурации сервис будет прослшуивать одновременно два порта: стандартный 5000 для HTTP и 5020 для HTTPS. Чтобы использовать стандартный порт 5000 для подключения по HTTPS, измените параметры следующим образом: . Обратите внимание, вместо Https в данной конфигурации указывается Http. |
| 2 | Path — папка, в которую установлен полученный или самоподписанный сертификат. |
| 3 | KeyPath — папка, в которой расположен ключ шифрования полученного или самоподписанного сертификата. |
{
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"HttpsInlineCertStore": {
"Url": "https://my-site.com:443", (1)
"Certificate": {
"Subject": "my-site.com", (2)
"Store": "My", (3)
"Location": "CurrentUser", (4)
"AllowInvalid": false (5)
}
}
}
}
}
| 1 | Url — адрес и порт для доступа по HTTPS. При такой конфигурации сервис будет прослшуивать одновременно два порта: стандартный 5000 для HTTP и 5020 для HTTPS. Чтобы использовать стандартный порт 5000 для подключения по HTTPS, измените параметры следующим образом: . Обратите внимание, вместо Https в данной конфигурации указывается Http. |
| 2 | Subject — адрес сайта, переданный в параметре DnsName при создании сертификата. |
| 3 | Store — наименование хранилища, переданное в параметре CertStoreLocation при создании сертификата. |
| 4 | Location — хранилище сертификата, переданное в параметре CertStoreLocation при создании сертификата. |
| 5 | AllowInvalid — стоит ли считать недействительные сертификаты самоподписанными (по умолчанию false). |
| После редактирования конфигурационных файлов обязательно перезапустите службы модулей! |
Если настройки выполнены корректно, система Docsvision должна работать без ошибок, обновление БД также должно проходить без ошибок.
Клиентская часть
После настройки защищённого подключения для сервера необходимо выполнить настройки для клиентской стороны.
-
Изменить адрес подключения с
httpнаhttpsпотребуется:-
В конфигурационном файле Web-клиента в параметре
ConnectionAddress. -
В параметре
Urlsвсех web-сервисов, включая: Web-клиент, Управление процессами, Менеджер решений. -
В параметре
Urlконфигурационного файлаappsettings.jsonмодуля Служба фоновых операций. -
Указать адрес Storage Server в конфигурационном файле
windows-client-part.jsonв параметрахConnectAddressиServerUrl, подробнее см. "Управление доступом" в документации модуля Платформа. -
При наличии других модулей убедитесь, что их конфигурация соответствует требованиям.
-
-
Если доступ по HTTPS настраивается для Сервиса настроек, также потребуется изменить параметр в конфигурационных файлах:
-
Web-клиента, модуля Управление процессами, Сервера приложений (модуля Платформа), Консоли управления Docsvision, Файлового сервиса, Менеджера решений.
-
-
Если используется самоподписанный сертификат, его потребуется добавить в доверенные корневые сертификаты на:
-
Серверах Web-клиента, Службы фоновых операций, модуля Управление процессами, Консоли управления Docsvision, Менеджера решений.
-
Рабочих местах пользователей Web-клиента.
-
Рабочих местах пользователей Windows-клиента.
-
Создание самоподписанного сертификата
Создание сертификата в Linux
-
Установите пакет
opensslкомандой:-
Astra Linux / Альт Сервер
-
РЕД ОС / SberLinux
$ sudo apt-get install openssl
$ sudo dnf install openssl
-
-
Создайте самоподписанный сертификат SSL.
$ openssl req -x509 -newkey rsa:2048 -keyout docsvision.key -nodes -out certificate.crt -subj "/CN=example.company.com" (1)
1 Замените docsvision.keyиcertificate.crtна собственные названия для ключа и сертификата, вместо/CN=example.company.comукажите адрес сервера Docsvision на Linux, например,/CN=help.docsvision.com.Подробный пример создания сертификата приведён в руководстве по настройке системы, раздел "Создание доверенного сертификата для подключения к БД". -
Добавьте сертификат в доверенные, скопировав его в директорию
/usr/local/share/ca-certificates/. -
Обновите список доверенных сертификатов:
-
Astra Linux / Альт Сервер
-
РЕД ОС / SberLinux
$ sudo update-ca-certificates
$ sudo update-ca-trust
-
Создание сертификата в Windows
-
В ОС Windows самоподписанный сертификат можно сгенерировать следующей командой в PowerShell:
New-SelfSignedCertificate -CertStoreLocation cert:\currentuser\my -DnsName "example.company.com" -FriendlyName "Docsvision Site" -KeyUsage "DigitalSignature", "KeyEncipherment" -KeyAlgorithm RSA -KeyLength 2048 -NotAfter $([datetime]::now.AddDays(90))Расшифровка команды:-
cert:\currentuser\my— место установки сертификата -
example.company.com— адрес сайта -
Docsvision Site— название сайта -
RSA— алгоритм шифрования -
2048— длина ключа. -
$([datetime]::now.AddDays(90))— срок действия сертификата (90 дней). Рекомендуется устанавливать от 90 до 360 дней.
-
-
Сертификат появится в хранилище Личное среди сертификатов пользователя, из которого его можно экспортировать в файл. Выберите сертификат из списка двойным нажатием мыши, откройте вкладку "Состав".
Рисунок 1. Просмотр сертификата на вкладке "Состав" -
Экспортируйте сертификат, нажав кнопку Копировать в файл и проследуйте инструкциям мастера экспорта сертификатов.
-
Установите экспортированный сертификат в хранилище "Доверенные корневые сертификаты" на сервере, а также на машинах пользователей. Для этого откройте файл сертификата и нажмите кнопку Установить сертификат.
Рисунок 2. Сертификат готов к установке -
Выполните настройку доступа к Docsvision по HTTPS.