Использование секретных ключей в службах Windows (IIS, etc)
Опубликовано Максим Коллегин on 2015-07-13 13:28

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

Для IIS права доступа необходимо проверять для учетной записи, под которой исполняется Application Pool.

Для доступа к сертификатам пользователей параметр Load User Profile должен быть выставлен в true.

Application Pool

Рекомендуется для системных служб использовать сертификаты и ключи, находящиеся в хранилищах локального компьютера. При этом необходимо правильно установить права на доступ к секретным ключам. Это можно сделать через оснастку сертификаты (ПУСК->КРИПТО-ПРО)

Сертификаты (локальный компьютер)->Личное->Сертификаты->Все задачи->Управление закрытыми ключами

 

По умолчанию для приложения в IIS необходимо разрешить полный доступ к ключу сертификата для учетной записи IIS AppPool\имя пула приложений:

 

Также необходимо убедиться, что сертификат установлен с привязкой к контейнеру локального компьютера: в панели КриптоПро CSP в мастере тестирования контейнера при отображении ссылки на ключ должен быть виден флаг CRYPT_MACHINE_KEYSET [#define CRYPT_MACHINE_KEYSET 0x00000020] :

сертификат в хранилище        My
                                  ; dwFlags: 0x00000020;

 Для этого в мастерах установки личного сертификата или при просмотре сертификатов в конейнере должен быть выбран радио "Компьютера".

Внимание, смарт-карты, подключенные по RDP не будут доступны в сервисах ОС. 



Вложения 
 
 iis.png (26.33 КБ)
 pool2.png (11.69 КБ)
 cert.png (33.66 КБ)
 pool1.png (6.34 КБ)
(4896 плюсик(ов))
Класс!
Не очень :(

Коментарии (0)