Получение списка выданных сертификатов с помощью .NET
От: certWantKnow  
Дата: 18.02.11 11:40
Оценка:
Здравствуйте, уважаемые!)

Столкнулся на днях с проблемой, которую пока не смог решить.
Проблема состоит в следующем — необходимо средствами .NET 4.0 получить список всех выданных пользователям сертификатов X509. Знаю, как извлечь все свои сертификаты (с помощью класса X509Store) со своей машины, а вот список всех, выданных сервером — нет.
Сервер — Windows Server 2003, Certificate Services установлены Stand-alone. Кто-нибудь, кто сталкивался, поможете решить?

Заранее спасибо!)
.net ca
Re: Получение списка выданных сертификатов с помощью .NET
От: Mr. None Россия http://mrnone.blogspot.com
Дата: 19.02.11 18:16
Оценка:
Здравствуйте, certWantKnow, Вы писали:

WK>Здравствуйте, уважаемые!)


WK>Столкнулся на днях с проблемой, которую пока не смог решить.

WK>Проблема состоит в следующем — необходимо средствами .NET 4.0 получить список всех выданных пользователям сертификатов X509. Знаю, как извлечь все свои сертификаты (с помощью класса X509Store) со своей машины, а вот список всех, выданных сервером — нет.
WK>Сервер — Windows Server 2003, Certificate Services установлены Stand-alone. Кто-нибудь, кто сталкивался, поможете решить?

WK>Заранее спасибо!)



Не совсем понятно, что значит все сертификаты выданные серверов. Если речь про сертификаты в локальном хранилище, которые выданы определённым центром сертификации, то нет ничего проще. Любой X509 сертификат содержит сведения о выдавшем его центре сертификации — он подписан корневым сертификатом этого CA. Так что вам всего лишь необходимо выбрать сертификаты, которые подписаны сертификатом интересующего вас центра сертификации.

Если же вас интересуют вообще все сертификаты выданные CA, то средствами .NET эту задачу естественно не решить. Эту информацию нужно запрашивать в самом CA. MS CA имеет свой COM-based API, которые называется Certificate Enrollment API. Попробуйте там покопаться. За давностью лет на 100 процентов утверждать не берусь, но вроде что-то связанное с запросом уже выданных сертификатов (естественно лишь публичных их версий) там было. Приватную версию вам ни один CA не выдаст.
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Re[2]: Получение списка выданных сертификатов с помощью .NET
От: certWantKnow  
Дата: 20.02.11 11:00
Оценка:
Здравствуйте, Mr. None, Вы писали:

MN>Не совсем понятно, что значит все сертификаты выданные серверов. Если речь про сертификаты в локальном хранилище, которые выданы определённым центром сертификации, то нет ничего проще. Любой X509 сертификат содержит сведения о выдавшем его центре сертификации — он подписан корневым сертификатом этого CA. Так что вам всего лишь необходимо выбрать сертификаты, которые подписаны сертификатом интересующего вас центра сертификации.


MN>Если же вас интересуют вообще все сертификаты выданные CA, то средствами .NET эту задачу естественно не решить. Эту информацию нужно запрашивать в самом CA. MS CA имеет свой COM-based API, которые называется Certificate Enrollment API. Попробуйте там покопаться. За давностью лет на 100 процентов утверждать не берусь, но вроде что-то связанное с запросом уже выданных сертификатов (естественно лишь публичных их версий) там было. Приватную версию вам ни один CA не выдаст.


Спасибо за помощь!) Имелся ввиду естественно второй случай, и именно публичные версии сертификатов. Попробую покапаться, еще раз спасибо.
Re[2]: Получение списка выданных сертификатов с помощью .NET
От: certWantKnow  
Дата: 22.02.11 12:27
Оценка:
Здравствуйте, Mr. None, Вы писали:

Покопался, не нашел нормального решения. Возможно плохо искал, поищу еще.

А если мы рассмотрим другой случай. Имеется сервер с установленным как Enterprise центром сертификации. С ним в одном домене находится несколько компьютеров пользователей, им всем выданы по запросу сертификаты. На сертификаты в настройках CA стоит, что их надо публиковать автоматически. Есть ли возможность программно получить все необходимые выданные сертификаты?
Re: Получение списка выданных сертификатов с помощью .NET
От: certWantKnow  
Дата: 24.02.11 09:19
Оценка:
Здравствуйте, certWantKnow, Вы писали:

WK>Здравствуйте, уважаемые!)


WK>Столкнулся на днях с проблемой, которую пока не смог решить.

WK>Проблема состоит в следующем — необходимо средствами .NET 4.0 получить список всех выданных пользователям сертификатов X509. Знаю, как извлечь все свои сертификаты (с помощью класса X509Store) со своей машины, а вот список всех, выданных сервером — нет.
WK>Сервер — Windows Server 2003, Certificate Services установлены Stand-alone. Кто-нибудь, кто сталкивался, поможете решить?

WK>Заранее спасибо!)


Если кому интересно, путь к решению можно найти здесь:

http://blogs.msdn.com/b/jayat/archive/2008/02/29/working-with-a-certificate-authority-in-c.aspx
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.