Развертывание дополнительного сервера (кластер)
Установка ПО
Установка ПО на дополнительном сервере выполняется так же, как и на основном (пункты 1-5).
Настройка веб-сервера IIS
1. Скопируйте с основного сервера ключи с сертификатами веб-сервера, а также цепочку сертификатов издателей сертификатов веб-сервера.
2. Установите на дополнительном сервере следующие сертификаты.
* Сертификаты веб-сервера с привязкой к закрытым ключам – в хранилище "Личные" локального компьютера;
* Промежуточные сертификаты из цепочки сертификатов издателей, а также списки отозванных сертификатов (CRL) – в хранилище "Промежуточные центры сертификации" локального компьютера (при необходимости);
* Корневые сертификаты из цепочки сертификатов издателей – в хранилище "Доверенные корневые центры сертификации" локального компьютера.
3. Создайте на веб-сервере привязки, аналогичные созданным на основном сервере.
4. Выполните настройку машинных ключей веб-сервера для шифрования файлов cookie.
Служебные ключи и сертификаты
Сервисные сертификаты
1. Скопируйте с основного сервера ключи и сервисные сертификаты. Посмотреть отпечатки сервисных сертификатов можно с использованием следующих командлетов:
#Центр Идентификации
(Get-DssStsProperties).ServiceCertificate
#Сервис Подписи
(Get-DssProperties).ServiceCertificate
#Веб-интерфейс Сервиса Подписи
(Get-DssFeProperties).ServiceCertificate
#Сервис Аудита
(Get-DssAnalyticsServiceProperties).ServiceCertificate
#Сервис Обработки Документов
(Get-DssDocumentStoreProperties).ServiceCertificateThumbprint
2. Выполните на дополнительном сервере установку скопированных ключей и сертификатов:
* сервисных сертификатов, с привязкой к закрытым ключам – в хранилище "Личные" локального компьютера;
* промежуточных сертификатов из цепочки сертификатов издателей, а также списков отозванных сертификатов (CRL) – в хранилище "Промежуточные центры сертификации" локального компьютера (при необходимости);
* корневых сертификатов из цепочки сертификатов издателей – в хранилище "Доверенные корневые центры сертификации" локального компьютера.
Сертификаты Операторов обработчиков УЦ 2.0
1. В случае, если на Сервисе Подписи зарегистрированы обработчики для прямого подключения к УЦ 2.0, то необходимо скопировать с основного сервера ключи и сертификаты Операторов, заданных в настройках обработчиков. Посмотреть отпечатки сертификатов Операторов можно с использованием следующего командлета:
Get-DssEnrollment|where {$_.TypeDescription.TypeName -eq "CryptoPro.DSS.SignatureServer.Managers.Enrollment.Ca20.DssCryptoProCa20Enroll"}|foreach {(Get-DssEnrollment -ID $_.Id).Settings["OperatorThumbprint"]}
2. Выполните на дополнительном сервере установку скопированных ключей и сертификатов:
* сертификатов Операторов, с привязкой к закрытым ключам – в хранилище "Личные" локального компьютера;
* промежуточных сертификатов из цепочки сертификатов издателей, а также списков отозванных сертификатов (CRL) – в хранилище "Промежуточные центры сертификации" локального компьютера (при необходимости);
* корневых сертификатов из цепочки сертификатов издателей – в хранилище "Доверенные корневые центры сертификации" локального компьютера.
Мастер-Ключи локальных криптопровайдеров сервисов
В случае если на основном сервере DSS используются локальные криптопровайдеры КриптоПро CSP ("Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" или "Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider"), то необходимо скопировать мастер-ключи криптопровайдеров сервисов.
Просмотреть наименования Мастер-Ключей можно при помощи следующих командлетов:
#Сервис Подписи
Get-DssCryptoProvider|where {$_.Name -eq 'Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -or $_.Name -eq 'Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider'}|foreach {(Get-DssCryptoProvider -ID $_.Id).settings["MasterKeyName"]}
#Центр Идентификации
Get-DssStsCryptoProvider|where {$_.Name -eq 'Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -or $_.Name -eq 'Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider'}|foreach {(Get-DssStsCryptoProvider -ID $_.Id).settings["MasterKeyName"]}
#myDSS Internal
Get-MyDssServerInternalCryptoProviders|where {$_.Name -eq 'Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -or $_.Name -eq 'Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider'}|foreach {(Get-MyDssServerInternalCryptoProviders -ID $_.Id).settings["MasterKeyName"]}
Скопировать мастер-ключи можно путем экспорта из следующей ветки реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Keys]
После выполнения экспорта мастер-ключи необходимо импортировать на дополнительный сервер.
Сертификаты подписи маркеров сторонних Центров Идентификации
1. В случае, если на Центре Идентификации DSS зарегистрированы сторонние центры идентификации, необходимо скопировать с основного сервера DSS сертификаты подписи маркеров безопасности. Просмотреть отпечатки сертификатов подписи маркеров можно при помощи следующего командлета:
Get-DssIdentityProvider|where {$_.IssuerName -ne "realsts"}|foreach {(Get-DssIdentityProvider -ProviderId $_.Id).SigningTokens|fl}
2. Выполните на дополнительном сервере установку сертификатов подписи маркеров в хранилище "Доверенные лица" локального компьютера.
Сертификаты издателей сертификатов Операторов DSS
1. Выгрузите на основном сервере DSS сертификаты издателей сертификатов Операторов из выделенного хранилища Центра Идентификации с использованием следующих командлетов:
#Запрос имени хранилища
$cert_name_idp = (Get-DssStsProperties).ClientAuthenticationIssuersStoreName
#Выгрузка содержимого хранилища в .p7b-файл (с указанием произвольного пути для сохранения)
Get-ChildItem "Cert:\LocalMachine\$cert_name_idp"|Export-Certificate -Type P7B -FilePath "C:\certs.p7b"
2. Перенесите сформированный .p7b-файл на дополнительный сервер для последующего импорта.
3. Выполните на дополнительном сервере установку следующих сертификатов:
* промежуточных сертификатов из цепочки сертификатов издателей сертификатов Операторов, а также списков отозванных сертификатов (CRL) – в хранилище "Промежуточные центры сертификации" локального компьютера (при необходимости);
* корневых сертификатов из цепочки сертификатов издателей – в хранилище "Доверенные корневые центры сертификации" локального компьютера.
Копирование конфигураций сервисов (без БД)
1. У ряда сервисов (Веб-интерфейс, Сервис взаимодействия с SDK) нет собственной БД, и их конфигурации хранятся локально на сервере. Для упрощения процедуры развертывания данных сервисов на дополнительном сервере скопируйте с основного сервера конфигурации из реестра ОС. Сделать это можно с использованием следующих командлетов:
# Веб-интерфейс
REG EXPORT "HKLM\SOFTWARE\WOW6432Node\CryptoPro\DSS\Frontend" "C:\frontend.reg"
# mDAG
REG EXPORT "HKLM\SOFTWARE\WOW6432Node\CryptoPro\DSS\MyDssApiGateway" "C:\mDAG.reg"
2. Перенесите сформированные .reg-файлы на дополнительный сервер для последующего импорта.
Формирование строк подключения к БД сервисов
1. Сформируйте строки подключения для существующих БД сервисов. Примеры формирования при использовании Windows-аутентификации:
$sql_name = "Адрес SQL-сервера"
$ServiceAccountName = "Имя учетной записи для Сервисов DSS"
$ServiceAccountPassword = "Пароль учетной записи для Сервисов DSS"
$idp_db = "Наименование БД Центра Идентиификации"
$ss_db = "Наименование БД Сервиса Подписи"
$audit_db = "Наименование БД Сервиса Аудита"
$ds_db = "Наименование БД Сервиса Обработки Документов"
$mydss_int_db = "Наименование БД Сервиса myDSS Internal"
$mydss_ext_db = "Наименование БД Сервиса myDSS External"
#Центр Идентификации
$idp_conn = New-DssStsSqlConnectionInfo -ServerName $sql_name -DatabaseName $idp_db -AccountType Windows -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -UseExistingDB
#Сервис Подписи
$ss_conn = New-DssSqlConnectionInfo -ServerName $sql_name -DatabaseName $ss_db -AccountType Windows -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -UseExistingDB
#Сервис Аудита
$audit_conn = New-DssAnalyticsSqlConnectionInfo -ServerName $sql_name -DatabaseName $audit_db -AccountType Windows -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -UseExistingDB
#Сервис Обработки Документов
$ds_conn = New-DssDocumentStoreSqlConnectionInfo -ServerName $sql_name -DatabaseName $ds_db -AccountType Windows -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -UseExistingDB
#myDSS Internal
$mydss_int_conn = New-MyDssInternalSqlConnectionInfo -ServerName $sql_name -DatabaseName $mydss_int_db -AccountType Windows -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -UseExistingDB
#myDSS External
$mydss_ext_conn = New-MyDssExternalSqlConnectionInfo -ServerName $sql_name -DatabaseName $mydss_ext_db -AccountType Windows -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -UseExistingDB
Обратите внимание на параметр UseExistingDB
– он является указателем, что подключение осуществляется к уже
существующим БД.
Полный список доступных параметров приведен в подразделе Развертывание баз данных служб.
2. Примеры формирования строк подключения при использовании SQL-аутентификации:
$sql_name = "Адрес SQL-сервера"
$ServiceAccountName = "Имя учетной записи для Сервисов DSS"
$ServiceAccountPassword = "Пароль учетной записи для Сервисов DSS"
$AsUser = "Имя учетной записи администратора SQL"
$AsUserPassword = "Пароль учетной записи администратора SQL"
$idp_db = "Наименование БД Центра Идентиификации"
$ss_db = "Наименование БД Сервиса Подписи"
$audit_db = "Наименование БД Сервиса Аудита"
$ds_db = "Наименование БД Сервиса Обработки Документов"
$mydss_int_db = "Наименование БД Сервиса myDSS Internal"
$mydss_ext_db = "Наименование БД Сервиса myDSS External"
#Центр Идентификации
$idp_conn = New-DssStsSqlConnectionInfo -ServerName $sql_name -DatabaseName $idp_db -AccountType SqlAccount -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -AsUser $AsUser -AsUserPassword $AsUserPassword -UseExistingDB
#Сервис Подписи
$ss_conn = New-DssSqlConnectionInfo -ServerName $sql_name -DatabaseName $ss_db -AccountType SqlAccount -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -AsUser $AsUser -AsUserPassword $AsUserPassword -UseExistingDB
#Сервис Аудита
$audit_conn = New-DssAnalyticsSqlConnectionInfo -ServerName $sql_name -DatabaseName $audit_db -AccountType SqlAccount -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -AsUser $AsUser -AsUserPassword $AsUserPassword -UseExistingDB
#Сервис Обработки Документов
$ds_conn = New-DssDocumentStoreSqlConnectionInfo -ServerName $sql_name -DatabaseName $ds_db -AccountType SqlAccount -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -AsUser $AsUser -AsUserPassword $AsUserPassword -UseExistingDB
#myDSS Internal
$mydss_int_conn = New-MyDssInternalSqlConnectionInfo -ServerName $sql_name -DatabaseName $mydss_int_db -AccountType SqlAccount -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -AsUser $AsUser -AsUserPassword $AsUserPassword -UseExistingDB
#myDSS External
$mydss_ext_conn = New-MyDssExternalSqlConnectionInfo -ServerName $sql_name -DatabaseName $mydss_ext_db -AccountType SqlAccount -ServiceAccountName $ServiceAccountName -ServiceAccountPassword $ServiceAccountPassword -AsUser $AsUser -AsUserPassword $AsUserPassword -UseExistingDB
Обратите внимание на параметр UseExistingDB
– он является указателем, что подключение осуществляется
к уже существующим БД.
Полный список доступных параметров приведен в подразделе Развертывание баз данных служб.
Создание экземпляров сервисов
1. Объявите наименования экземпляров.
Примечание
Наименования экземпляров сервисов должны совпадать с используемыми на основном сервере.
$idp_name = "Наименование экземпляра Центра Идентификации"
$ss_name = "Наименование экземпляра Сервиса Подписи"
$fe_name = "Наименование экземпляра Веб-интерфейса Сервиса Подписи"
$audit_name = "Наименование экземпляра Сервиса Аудита"
$ds_name = "Наименование экземпляра Сервиса Обработки Документов"
$mdag_name = "Наименование экземпляра mDAG"
$mydss_int_name = "Наименование экземпляра Сервиса myDSS Internal"
$mydss_ext_name = "Наименование экземпляра Сервиса myDSS External"
2. Объявите наименование сайта:
$site_name = "Default Web Site"
3. Создайте экземпляры сервисов:
#Центр Идентификации
New-DssStsInstance -ApplicationName $idp_name -DisplayName $idp_name -SiteName $site_name -ConnectionInfo $idp_conn
#Сервис Подписи
New-DssSignServerInstance -ApplicationName $ss_name -DisplayName $ss_name -SiteName $site_name -ConnectionInfo $ss_conn
#Веб-интерфейс Сервиса Подписи
New-DssFeInstance -ApplicationName $fe_name -DisplayName $fe_name -SiteName $site_name
#Сервис Аудита
New-DssAnalyticsServiceInstance -ApplicationName $audit_name -DisplayName $audit_name -SiteName $site_name -ConnectionInfo $audit_conn
#Сервис Обработки Документов
New-DssDocumentStoreInstance -ApplicationName $ds_name -DisplayName $ds_name -SiteName $site_name -ConnectionInfo $ds_conn
#mDAG
New-MdagInstance -ApplicationName $mdag_name -DisplayName $mdag_name -SiteName $site_name
#myDSS Internal
New-MyDssServerInternalInstance -ApplicationName $mydss_int_name -DisplayName $mydss_int_name -SiteName $site_name -ConnectionInfo $mydss_int_conn
#myDSS External
New-MyDssServerExternalInstance -ApplicationName $mydss_ext_name -DisplayName $mydss_ext_name -SiteName $site_name -ConnectionInfo $mydss_ext_conn
4. Импортируйте ветки реестра, экспортированные ранее для сервисов, имеющих только локальную конфигурацию.
5. Выдайте права учетным записям, под которыми работают пулы приложений сервисов, на доступ к закрытым ключам сервисных сертификатов.
6. Выдайте права учетной записи, под которой работает пул приложения Сервиса Подписи, на доступ к закрытым ключам сертификатов Операторов обработчиков УЦ 2.0.
7. Импортируйте сертификаты издателей сертификатов Операторов из скопированного ранее .p7b-файла с использованием следующих командлетов:
#Запрос имени хранилища
$cert_name_idp = (Get-DssStsProperties).ClientAuthenticationIssuersStoreName
#Импорт из .p7b-файла
Import-Certificate -FilePath "C:\certs.p7b" -CertStoreLocation 'Cert:\LocalMachine\$cert_name_idp'
Дополнительные настройки
1. Выполните настройку ограничений максимальных размеров документов на дополнительном сервере.
2. В случае использования локальных криптопровайдеров сервисов подключите аппаратный ДСЧ или гамму.
3. Активируйте лицензию Сервиса Подписи на дополнительный сервер:
Add-DssLicense -SerialNumber "Серийный номер лицензии" -CompanyName "Наименование компании – конечного владельца"
4. При задействовании контроля целостности записей аудита зарегистрируйте
дополнительный криптопровайдер, задав в параметре NodeId
имя узла дополнительного сервера.
5. При использовании ПАКМ "КриптоПро HSM" настройте подключение к HSM на дополнительном сервере в соответствии с одной из схем балансировки. Также добавьте учетные записи, под которыми работают пулы приложений сервисов, подключенных к HSM, в группу локальных пользователей «Привилегированные пользователи КриптоПро HSM».
6. Опционально: сделайте в файле hosts на основном и дополнительном серверах запись с соответствием IP-адреса конкретного сервера и кластерного имени.
Перезапуск пулов приложений и проверка работоспособности
1. Перезапустите пулы приложений сервисов на дополнительном сервере с использованием следующих командлетов:
#Центр Идентификации
Restart-DssStsInstance
#Сервис Подписи
Restart-DssSignServerInstance
#Веб-интерфейс Сервиса Подписи
Restart-DssFeInstance
#Сервис Аудита
Restart-DssAnalyticsServiceInstance
#Сервис Обработки Документов
Restart-DssDocumentStoreInstance
#mDAG
Restart-MdagInstance
#myDSS Internal
Restart-MyDssServerInternalInstance
#myDSS External
Restart-MyDssServerExternalInstance
2. Выполните проверку работоспособности путем обращения к конечным точкам, перечисленным в подразделе Устранение неполадок.