Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Для работы Агентов требуются следующие сертификаты:

  • RutokenKeyBox Agent CA  корневой сертификат Агента RutokenKeyBox. Используется для выдачи сертификатов рабочим станциям пользователей, на которых будут устанавливаться Агенты.
  • RutokenKeyBox Agent SSL — сертификат проверки подлинности, подписан корневым сертификатом. Необходим для установления двухстороннего защищенного соединения между сервером и рабочей станцией с установленным Агентом. Сертификат выдается на имя рабочей станции, на которой развернут сервер RutokenKeyBoxРутокен KeyBox.
  • Сертификат рабочей станции — выдается выдаётся автоматически при регистрации Агента. Обращаясь к серверу клиентский компьютер предоставляет свой сертификат, сервер RutokenKeyBox проверяет подлинность сертификата после чего начинает доверять Агенту, установленному на рабочей станции пользователя, и готов передавать на него задачи.

Сертификаты Агента создаются при помощи утилиты IndeedCM.Agent.Cert.Generator.exe, входящей в состав дистрибутива RutokenKeyBox Рутокен KeyBox (располагается в RutokenKeyBox.Server\Misc\AgentCertGenerator).

1. Запустите в командной строке, запущенной от имени администратора, на сервере RutokenKeyBox утилиту IndeedCM.Agent.Cert.Generator.exe c параметрами: /root /csn /installToStore. Дождитесь завершения работы утилиты.

Tip

Параметры утилиты

Генерация корневого и SSL-сертификата:

/root - генерация корневого сертификата сервисов агента.
/rootKeySize - размер закрытого ключа корневого сертификата сервисов агента (не обязательный параметр, по умолчанию генерируется закрытый ключ размером 4096 бит, возможный диапазон от 512 до 8192 бит).
/sn <DNS-имя сервера> - генерация SSL-сертификата на указанное DNS-имя сервера.
/csn - генерация SSL-сертификата на имя сервера, на котором запущена утилита.
/sslKeySize - размер закрытого ключа SSL-сертификата (необязательный параметр, по умолчанию генерируется закрытый ключ размером 2048 бит, возможный диапазон от 512 до 4096 бит).
/pwd - пароль SSL-сертификата (необязательный параметр).
/installToStore - 

Note

Параметр /csn запускает процедуру выпуска сертификатов на DNS-имя рабочей станции, на которой запускается утилита. Для создания сертификатов для рабочей станции с другим именем запустите утилиту с параметром /sn<DNS-имя рабочей станции>.
Параметр /installToStore публикует выпущенные утилитой сертификаты в хранилища сертификатов сервера (необязательный параметр, используется только для ОС Windows):

  • Сертификат RutokenKeyBox Agent  CM Agent CA в Доверенные корневые центры сертификации (Trusted Root Certification Authorities).
  • Сертификат RutokenKeyBox CM Agent SSL в хранилище личных  Личных сертификатов рабочей станции, на которой установлен сервер Indeed CM.

Генерация только SSL-сертификата, используя уже выпущенный корневой сертификат CM Agent CA:

/rootKey - путь до файла корневого сертификата сервисов агента.
/ssl - генерация SSL-сертификата сервисов агента.
/sn <DNS-имя сервера> - генерация SSL-сертификата на указанное DNS-имя сервера.
/csn - генерация SSL-сертификата на имя сервера, на котором запущена утилита.
/pwd - пароль SSL-сертификата (необязательный параметр).
/sslKeySize - размер закрытого ключа SSL-сертификата (необязательный параметр, по умолчанию генерируется закрытый ключ размером 2048 бит, возможный диапазон от 512 до 4096 бит).
/installToStore - публикует выпущенный утилитой SSL-сертификат в хранилище Личных сертификатов рабочей станции, на которой установлен сервер системы (необязательный параметр, используется только для ОС Windows).

Запуск утилиты генерации сертификатов сервисов агента

  • На ОС Windows:
  1. Запустите в командной строке, запущенной от имени администратора, на сервере RutokenKeyBox утилиту IndeedCM.

...

  1. Agent.Cert.Generator.exe c параметрами /root /csn /installToStore.

Пример:

Cm.Agent.Cert.Generator.exe /root /csn /installToStore

  • На ОС Linux:
  1. На сервере Рутокен KeyBox запустите терминал.

  2. Перейдите в директорию с утилитой и измените права на файл, добавив право на выполнение файла Cm.Agent.Cert.Generator:

    sudo chmod +x Cm.Agent.Cert.Generator
  3. Запустите утилиту c параметрами /root /csn и дождитесь завершения её работы.

Пример:

./Cm.Agent.Cert.Generator /root /csn

В каталоге с утилитой появятся файлы:

  • agent_root_ca.json - корневой сертификат сервисов агента с закрытым ключом в формате JSON.
  • agent_root_ca.cer - корневой сертификат сервисов агента.
  • agent_root_ca.key - закрытый ключ корневого сертификата сервисов агента.
  • agent_ssl_cert.cer - SSL-сертификат сайта сервисов агента.
  • agent_ssl_cert.key - закрытый ключ SSL-сертификата сайта сервисов агента.
  • agent_ssl_cert.pfx - SSL-сертификат сервисов  агента с закрытым ключом в формате PFX.

Поместите сертификат CM Agent CA (agent_root_ca.cer)2. В каталоге с утилитой появятся файл RutokenKeyBox Agent CA.key, содержащий отпечаток сертификата RutokenKeyBox Agent CA и значение ключа сертификата.
3. Поместите сертификат RutokenKeyBox Agent CA в Доверенные корневые центры сертификации (Trusted Root Certification Authorities) на всех рабочих станциях пользователей.

Info
Для распространения сертификата на рабочие станции пользователей удобно использовать механизм групповых политик Active Directory.

...

сервере системы. 

Если в вашем окружении используется несколько серверов Indeed CM с агентами, то для каждого сервера требуется выпустить SSL-сертификат сервисов агента, используя общий корневой сертификат CM Agent CA (корневой сертификат сервисов агента на всех серверах должен быть один и тот же). Для создания SSL-сертификата дополнительного сервера или обновления истекшего сертификата перенесите каталог с утилитой Cm.Agent.Cert.Generator и корневой сертификат сервисов агента с закрытым ключом в формате JSON (agent_root_ca.json) на сервер и выполните команду:

Cm.Agent.Cert.Generator.exe /rootKey <путь к файлу agent_root_ca.json> /ssl /sn <DNS-имя сервера IndeedCM> /installToStore

Пример запуска утилиты для создания дополнительного или обновление истекшего SSL-сертификата сервисов агента:

ОС Windows:
Cm.Agent.Cert.Generator.exe /rootKey "C:\AgentCertGenerator\agent_root_ca.json" /ssl /sn indeedcm2.demo.local /installToStore
 
ОС Linux:
./Cm.Agent.Cert.Generator /rootKey ./agent_root_ca.json /ssl

Настройка защищенного соединения с сайтом сервисов агента

Для ОС Windows

...

  1. Перейдите в Диспетчер служб IIS (Internet Information Services (IIS) Manager).
  2. Выберите сайт

...

  1. Rutoken KeyBox Agent Site и перейдите в раздел Привязки... (Bindings...).
  2. Выберите привязку по порту 3003.
  3. Нажмите Изменить... (Edit...).
  4. Укажите в качестве SSL-сертификата сертификат CM Agent SSL или другой SSL/TLS-сертификат, выпущенный с любого доверенного УЦ в инфраструктуре на имя сервера системы и нажмите OK.
Notewarning

Порт 3003 устанавливается по умолчанию. Если вы используете другой порт, то создайте и настройте новую привязку для него. Убедитесь в том, что порт открыт для входящих подключений в брандмауэре.

...

В качестве

...

SSL/TLS-сертификата

...

5. Пример настройки привязки для сайта RutokenKeyBox Agent Site.
Image Removed

6. Если в вашем окружении используется несколько серверов RutokenKeyBox с Агентами, то для каждого сервера потребуется свой SSL-сертификат Агента (корневой сертификат на всех серверах один и тот же). Для создания SSL-сертификата дополнительного сервера перенесите на него каталог с утилитой IndeedCM.Agent.Cert.Generator.exe и файл ключа корневого сертификата RutokenKeyBox Agent CA.key, затем выполните команду:

...

IndeedCM.Agent.Cert.Generator.exe /ssl /сsn /rootKey <путь к каталогу с ключом корневого сертификата> /installToStore

Пример:

...

допускается использование RSA-сертификата, выпущенного c любого доверенного УЦ на имя сервера Рутокен KeyBox.

  • Субъект (Subject) сертификата должен содержать атрибут Общее имя (Common name) (FQDN сервера системы).
  • Дополнительное имя субъекта (Subject Alternative Name) сертификата должно содержать атрибут DNS-имя (DNS Name) (FQDN сервера системы).
    Например: rutokenkeybox.demo.local или соответствующую запись с подстановочными знаками, например: *. demo.local (Wildcard certificate).
  • Улучшенный ключ (Enhanced Key Usage) сертификата должен содержать значение Проверка подлинности сервера (Server Authentication).

Для ОС Linux

  1. Скопируйте созданный утилитой SSL-сертификат сайта агентских сервисов и его приватный ключ в соответствующие хранилища на сервере Indeed CM, а также корневой сертификат Агента в хранилище доверенных корневых сертификатов:
    Пример:

    sudo cp ./agent_ssl_cert.cer /etc/ssl/certs/
    sudo cp ./agent_ssl_cert.key /etc/ssl/private/
    sudo cp ./agent_root_ca.cer /usr/local/share/ca-certificates/

  2. Запустите команду обновления хранилища доверенных корневых сертификатов:
    sudo update-ca-certificates
  3. Укажите пути до сертификата и закрытого ключа в конфигурационном файле используемого web-сервера в разделе, описывающем сайт сервисов агента.      
Expand
titleПример конфигурационного файла web-сервера Nginx:

server {
        listen              3003 ssl;
        server_name         redos.demo.local;
  
        ssl_certificate     "/etc/ssl/certs/indeedcm.demo.local_ssl_cert.cer";
        ssl_certificate_key "/etc/ssl/private/indeedcm.demo.local_ssl_cert.key";
        ssl_verify_client   optional_no_ca;
          
        location /agentregistrationapi
             {   include /etc/nginx/conf.d/proxy.conf; 
                proxy_pass http://localhost:5006/agentregistrationapi;  }
        location /agentserviceapi     
         {   include /etc/nginx/conf.d/proxy.conf; 
                proxy_pass http://localhost:5007/agentserviceapi; 
                proxy_set_header x-ssl-client-cert $ssl_client_escaped_cert;  }
    }
}

Note

Порт 3003 используется по умолчанию. Если вы используете другой порт, то создайте и настройте новую привязку для него. Убедитесь в том, что порт открыт для входящих подключений в брандмауэре.

В качестве SSL/TLS-сертификата допускается использование RSA-сертификата, выпущенного c любого доверенного УЦ на имя сервера Рутокен KeyBox.

  • Субъект (Subject) сертификата должен содержать атрибут Общее имя (Common name) (FQDN сервера системы).
  • Дополнительное имя субъекта (Subject Alternative Name) сертификата должно содержать атрибут DNS-имя (DNS Name) (FQDN сервера системы).
    Например: rutokenkeybox.demo.local или соответствующую запись с подстановочными знаками, например: *. demo.local (Wildcard certificate).
  • Улучшенный ключ (Enhanced Key Usage) сертификата должен содержать значение Проверка подлинности сервера (Server Authentication).