c # — ошибка: «невозможно найти объект или свойство» при загрузке частного сертификата в службу Windows, работающую как LocalSystem

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

Служба Windows — это приложение .Net 3.5, которое использует (через уровень C ++ / CLI) библиотеку C ++ WinCrypt для загрузки сертификатов. В частности, я вызываю метод CertFindCertificateInStore при доступе к магазину для загрузки сертификата. CertFindCertificateInStore использует «Мое» системное хранилище как хранилище по умолчанию.

Я зарегистрировал свой личный сертификат в системном хранилище «Мой» либо для текущего пользователя (пользователя, вошедшего в систему), либо для локального компьютера через консоль MMC. Будьте уверены, что сертификат хорош, и он включает в себя мой закрытый ключ.

Когда я запускаю службу Windows как текущий пользователь (снова пользователь, вошедший в систему), сертификат загружается правильно, вместо этого сертификат не загружается, когда я запускаю службу как «LocalSystem». Затем возникает ошибка «Невозможно найти объект или свойство», когда я вызываю CertFindCertificateInStore. Я подчеркиваю, что «Мой» магазин вместо этого остается доступным.

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

Затем я использовал консоль MMC или системный инструмент winhttpcertcfg.exe, чтобы убедиться, что у пользователя «LocalSystem» есть права на доступ к моему сертификату. После этого консоль MMC и средство winhttpcertcfg.exe подтверждают, что теоретически пользователь «LocalSystem» имеет права на доступ к сертификату.

Есть ли у вас какие-либо предложения, чтобы помочь мне решить эту проблему?

Заранее спасибо за вашу помощь,

PS: аналогичный вопрос был опубликован здесь Сертификаты: не удается найти сертификат и закрытый ключ для расшифровки Ошибка при подписи

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]