2010-01-21 5 views
3

Есть ли способ программно редактировать цели, включенные для сертификата x.509?изменить x509 расширенные свойства/использование

Эта функциональность доступна с помощью оснастки mmc оснастки (гиперссылка ниже), но мне нужно выполнить действие с помощью кода. предпочтительно C#.

modify the properties of a certificate

ответ

1

ММС может делать все, что Crypto API может сделать, и есть куча связанных сертификатов функций, таких как CertAddEnhancedKeyUsageIdentifier или CertSetCertificateContextProperty. Существует полный пример в Example C Program: Getting and Setting Certificate Properties, включая модификацию «расширенного использования ключа», которая указывает использование, для которого действителен сертификат. Например, чтобы сделать сертификат действительным для SSL с серверной стороны, вам нужно будет добавить идентификатор EKU 1.3.6.1.5.5.7.3.1 (например, «Аутентификация сервера»), см. Configuring Certificate for Use by SSL.

C# эквивалент X509KeyUsageExtension класс. См. Ссылку на спецификацию класса для примеров.

+0

спасибо. Расширение C# x509keyusageext изменит только набор сертификатов в памяти, а не фактическое хранилище сертификатов. Ваши ссылки были очень полезными. Crypto API CertAddEnhancedKeyUsageIdentifier действительно модифицирует сертификат в хранилище и требует только быстрый dllimport. – RSmith

+0

Спасибо за сообщение обратной связи. Я не знал о различиях между реальным API и управляемым. Я сам всегда использовал материал Crypto API напрямую. –