( Отказ от ответственности: Я разместил этот вопрос в StackOverflow , но с точки зрения разработчика. Я попытался переписать вопрос для соответствия условиям ServerFault)
Пользовательская служба должна входить на удаленный сервер через HTTPS-соединение, поэтому с сертификатом SSL (Windows 2008 Server SP2).
Я следовал инструкциям Microsoft для установки сертификата для учетной записи службы с MMC. Сертификат (самоподписанный) установлен в Trusted Root хранилище сертификатов центров сертификации. Поэтому я добавил оснастку сертификата и добавил сертификат для учетной записи службы. Затем я где-то сохранил файл консоли, но не знаю, пригодится ли он (полагаю, изменения вступят в силу немедленно?).
Сертификат виден в реестре (
- это имя службы):
HKLM\SOFTWARE\Microsoft\Cryptography\ Services\<ServiceName>\SystemCertificates\Root\Certificates\<digitalFootprint>
Однако служба не находит сертификат (предполагается, что хранилище относится к типу X509).
У меня возникла аналогичная проблема при попытке установить сертификат для пользователя с certmgr.msc . Мне пришлось войти в систему как пользователь, установить его через Internet Explorer , чтобы он заработал.
Я что-то пропустил?
Благодаря ответу Crypt32 в версии StackOverflow этого вопроса проблема связана с ограничениями .NET Api: он «не поддерживает поиск сертификатов в хранилищах учетных записей служб».