Для обеспечения поддержки защищенных протоколов SSL/TLS необходимо выполнить ряд настроек как на стороне сервера JMS, так и в других компонентах системы (Рис. 50).

Рис. 50 – Схема настройки SSL на API-интерфейсах компонентов JMS

Настройка SSL-соединения на стороне сервера JMS

Для включения SSL на интерфейсах сервера JMS следует использовать команду ssl enable консольного агента Aladdin.EAP.Agent.Terminal Например:

Aladdin.EAP.Agent.Terminal ssl enable --path /opt/41/f_pfx/ssl.pfx --password P@ssw0rd

В результате успешной настройки конфигурации на консоли отобразится:

Рис. 51 – Выдача команды настройки SSL на API-интерфейсах сервера JMS

В приведенном примере используется ssl-сертификат сервера JMS и настройка осуществляется одновременно на интерфейсах IntegrationManager API (интерфейс взаимодействия с Консолью управления JMS) и ClientManager API (интерфейс взаимодействия с клиентскими компонентами JWA). Команда предусматривает также возможность устанавливать SSL отдельно на каждом из указанных интерфейсов, а также использовать уже ранее установленный в системе сертификат.

Подробное описание команды ssl enable ее см. в разделе «Приложение 2. Справочник команд консольного агента Aladdin.EAP.Agent.Terminal», с. 120.

Для проверки текущей настройки SSL на интерфейсах Сервера JMS используйте команду консольного агента ssl show, например:

Aladdin.EAP.Agent.Terminal ssl show

Рис. 52 – Пример выдачи команды ssl show

Настройка SSL/TLS на стороне Web-приложения Консоль управления JMS

Для обеспечения функционирования web-консоли управления JMS внесите следующие правки в конфигурационный файл /etc/aladdin/eap-web-admin/appsettings.json

  1. Укажите адрес для защищенного подключения к API управления сервером JMS:
"WebAdminSettings": {
 
    "IntegrationApiUrl": "https://<FQDN_Сервера_JMS>:8120",

Где <FQDN_Сервера_JMS> -- полное доменное имя сервера JMS.

      2. Укажите адрес для защищенного подключения к API аутентификации сервера JMS:

"WebAdminSettings": {
 
    "AuthenticationApiUrl": "https://<FQDN_Сервера_JMS>:8121",

Где <FQDN_Сервера_JMS> -- полное доменное имя сервера JMS.

      3. Для безопасного подключения к серверному Web-приложению Консоль управления JMS из Web-браузера на клиентской машине добавьте в конфигурационный файл секцию "Kestrel" -> "Endpoints" ->"Https", например:

"Kestrel": {
 
        "Endpoints": {
 
            "Http": {
 
                "Url": "http://localhost:5001"
 
            },
 
            "Https": {
 
                "Url": "https://*:5000",
 
                "Certificate": {
 
                    "Path": "<путь_к_pfx-файлу_сертификата>",
 
                    "Password": "<пароль_к_pfx-файлу>"
 
                }
 
            }
 
        }
 
    },

   Где

  • <путь_к_pfx-файлу_SSL-сертификата> -- путь к файлу SSL-сертификата, выпущенного на имя хоста с серверным Web-приложением Консоль управления JMS;
  • <пароль_к_pfx-файлу> - пароль к контейнеру сертификата;

Подробнее особенности синтаксиса прописывания адресов Kestrel (строковое значение параметра "Url") для JMS Web Admin приведены в разделе «Установка серверного компонента Консоли управления JMS», с. 21.

      4. Для вступления в силу внесенных изменений перезапустите службу eap-web-admin:

systemctl restart eap-web-admin

Настройка SSL/TLS на стороне web-клиента JMS

Для корректного функционирования web-приложений с клиентом JMS или консолью управления JMS в конфигурационном файле JWA  /etc/aladdin/jwa-service/appsettings.json на клиентских компьютерах необходимо внести следующие изменения:

  1. Для подключения по SSL к интерфейсу AuthenticatonManager API (интерфейс аутентификации компонентов JMS) в секции "JMS", в параметре "AuthApiURL" впишите:
"JMS": {
 
    "AuthApiURL": "https://<FQDN_Сервера_JMS>:8121",

 Где <FQDN_Сервера_JMS> -- полное доменное имя сервера JMS.

      2. Для подключения по SSL к интерфейсу ClientManager API (интерфейс взаимодействия JMS с клиентскими компонентами – JWA) в секции "JMS", в параметре "ClientApiURL" впишите:

"JMS": {
 
    "ClientApiURL": "https://<FQDN_Сервера_JMS>:8122",

Где <FQDN_Сервера_JMS> -- полное доменное имя сервера JMS.

      3. Для вступления в силу измененных параметров перезапустите процесс JWA командами:

/opt/jms-client/jwa-service.sh stop
 
/opt/jms-client/jwa-service.sh bg

Настройка SSL/TLS для работы с СУБД

Настройка SSL/TLS для работы с СУБД на стороне сервера JMS

Для включения поддержки защищённого соединения с СУБД при инициализации JMS (см. раздел «Установка и первоначальная настройка сервера и консольного агента JMS», с. 18) необходимо установить значение true у параметров:

  • encryptDatabaseConnection
  • encryptServerConnection

в секции [database] инициализационного файла (см. «Приложение 1. Параметры файла первоначальной конфигурации сервера JMS» с. 114).

Настройка SSL/TLS для работы с MS SQL

Настройка защищённого соединения для подключения к MS SQL выполняется через SQL Server Configuration Manager. Для настройки выполните следующие действия.

  1. В разделе Server Network Configuration откройте контекстное меню, нажав правой кнопкой мышки на экземпляре сервера MS SQL, для которого производится настройка. В открывшемся меню выберите пункт Properties
  2. В открывшемся диалоговом окне на вкладке Flags установите флаг Force Encryption в Yes, чтобы сделать SSL-подключения обязательными.

Рис. 53 – Установка принудительного включения защищённого соединения с MS SQL

      3. На вкладке Certificate выберите сертификат, который будет использоваться для SSL-подключений.

Рис. 54 – Выбор SSL-сертификата  для защищённого соединения с MS SQL

Если сертификат не выбран, то MS SQL создаст свой самоподписанный сертификат, что может быть нежелательным.

Также необходимо отметить, что выбранный сертификат может не подойти под требования для SSL-сертификатов. В этом случае при запуске сервера MS SQL возникнет ошибка, связанная с SSL. Требования к сертификатам описаны документации к MS SQL: Certificate requirements for SQL Server 2016

      4. Перезапустите экземпляр сервера MS SQL, для которого выполнялась настройка.

Более подробное описание настройки можно найти в документации к MSSQL. Например, для SQL Server 2016: https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/configure-sql-server-encryption?view=sql-server-2016.

Настройка SSL/TLS для работы с PostgreSQL

После установки PostgreSQL обеспечивает опциональную (в зависимости от запросов клиента) поддержку SSL-соединений, но при этом используются временные (ssl-cert-snakeoil) сертификаты. Для обеспечения защищённого соединения с PostgreSQL, как правило, достаточно создать свои сертификаты и указать их в конфигурационном файле.

SSL для PostgreSQL настраивается в конфигурационном файле postgresql.conf. Для включения SSL выполните следующие действия.

  1. Убедитесь, что у параметра ssl в конфигурационном файле установлено в значение «true», «on» или «уes». Например в PostgreSQL версии 9.6 такой файл может выглядеть следующим образом:

Рис. 55 – Проверка включения режима SSL в конфигурационном файле PosgreSQL

      2. Сгенерируйте ключевую пару, которая будет использоваться сервером PostgreSQL и укажите пути к файлу сертификата и ключа:

ssl_cert_file='/path/to/cert.pem'
 
ssl_key_file='/path/to/private/cert.key'

      3. При необходимости укажите файлы со списком доверенных УЦ для клиентских сертификатов и списком отозванных сертификатов через параметры «ssl_ca_file» и «ssl_crl_file»:

ssl_ca_file=/path/to/root.crt
 
ssl_crl_file=/path/to/root.crl

      4. Перезапустите PostgreSQL, если вносились какие-либо изменения в параметры выше:

sudo systemctl restart postgresql

Более детальное описание конфигурации SSL можно найти в документации PostgreSQL. Например, для версии 9.6 по следующей ссылке: https://www.postgresql.org/docs/9.6/ssl-tcp.html

Настройка SSL для доступа к ресурсной системе

Для обеспечения работы по SSL с ресурсной системой при инициализации сервера JMS необходимо установить значение true в параметре useSsl (в файле конфигурации, см. «Секция [accountSystem]», с. 114), а также убедиться в корректном значении порта (параметр serverPort).

Кроме того, для корректной работы с Samba AD или AD через SSL необходимо чтобы используемый серверный сертификат был доверенным и параметр serverAddress конфигурационного файла совпадал с CN сертификата или Subject Alternative Name.

В общем случае, если машина с сервером JMS не заведена в домен Samba AD или AD, следует выполнить следующий набор действий:

  1. Добавить доменное имя машины с Samba AD в /etc/hosts серверной машины JMS.
  2. Получить корневой сертификат ресурсной системы. Для Samba AD найти его можно командой «sudo find / -name ca.pem», обычно он находится в /var/lib/samba/private/tls. Для AD необходимо экспортировать корневой сертификат в формате «Base-64 encoded x.509»
  3. После чего полученный сертификат необходимо сделать доверенным на машине с сервером JMS в соответствии с установленной на ней операционной системой:
  • Astra Linux
    • Убедиться, что установлен пакет ca-certificates (если нет, то поставить - "apt-get install ca-certificates")
    • Скопировать сертификат в /usr/local/share/ca-certificates/
    • Выполнить "update-ca-certificates"
  • РЕД ОС
    • Убедиться, что установлен пакет ca-certificates (если нет, то поставить - "yum install ca-certificates")
    • Выполнить "update-ca-trust force-enable"
    • Скопировать сертификат в /etc/pki/ca-trust/source/anchors/
    • Выполнить "update-ca-trust extract"
  • Alt Linux
    • Убедиться, что установлен пакет ca-certificates (если нет, то поставить - "apt-get install ca-certificates")
    • Скопировать сертификат в /etc/pki/ca-trust/source/anchors/
    • Выполнить "update-ca-trust"

Если же есть необходимость использовать Samba AD без SSL, то необходимо убедиться, что строка «ldap server require strong auth = no» присутствует в /etc/samba/smb.conf, если нет, то добавить её. Эта настройка отвечает за требование SSL со стороны Samba AD при подключении.

Примечание. В случае если изначально сервер JMS был проинициализирован с отключенным флагом useSsl (useSsl=false, значение по умолчанию), можно произвести повторную инициализацию JMS, предварительно внеся необходимые изменения в файл InitialConfiguration.ini (см. раздел «Подготовительные действия», с. 18 ). Кроме того, параметры подключения к ресурсной системе можно изменить с помощью графической утилиты JMS Web Console (Рис. 56).

Рис. 56 – Изменение параметров подключения к ресурсной системе с помощью графической утилиты JMS Web Console

Настройка SSL в подсистеме JWM

Первоначальная настройка SSL в подсистеме JWM осуществляется с помощью файлов инициализации ее компонентов (подробнее см. раздел «Развёртывание JWM», с. 73). Однако если настройку SSL надо выполнить после инициализации компонентов JWM, выполните следующие шаги.

  1. Выполните команду:
/opt/jms-web-manager/UserPlace/Configurator/ConfigureService userplace install cert –path <path_to_pfx> --password <password_to_private_key>

где –path – путь до экспортированного сертификата в формате PFX

--password – пароль от закрытого ключа

Например:

/opt/jms-web-manager/UserPlace/Configurator/ConfigureService userplace install cert –path /opt/certs/jwmprivate.jms4.local.pfx –password P@ssw0rd!

      2. Выполните команду:

/opt/jms-web-manager/UserPlace/Configurator/ConfigureService userplace install https -u URL:port

Например:

/opt/jms-web-manager/UserPlace/Configurator/ConfigureService userplace install https -u https://jwmprivate.jms4.local:5870