2016-01-28 2 views
5

PowerShell 4.0Как создать сертификат подписи кода через New-самозаверенный сертификат командлета

makecert инструмент имеет -eku вариант для описания расширенных ключевых идентификаторов объектов использования (OIDS) в сертификат. Это позволяет сделать сертификаты для подписи подписи и для других целей. Но это не командлет.

Новые версии PowerShell имеют командлет New-SelfSignedCertificate для локального тестирования скриптов. Но это создает сертификат, который не может быть использован для подписи кода:

New-SelfSignedCertificate -DnsName www.SomeSite.com -CertStoreLocation Cert:\CurrentUser\My 

Я не вижу вариант, который похож на -eku.

Как я могу назначить пункт назначения моего нового самоподписанного сертификата (созданного с помощью командлета New-SelfSignedCertificate) для возможности его использования для подписи кода? Или можно сделать то же самое с помощью другого командлета?

ответ

2

Версия New-SelfSignedCertificate на PS 4 довольно проста.

Однако Powershell v5 имеет параметры, которые потребуются для создания определенных ключей.

В частности параметр Keyusage, который принимает

-- CertSign 
-- CRLSign 
-- DataEncipherment 
-- DecipherOnly 
-- DigitalSiganture 
-- EncipherOnly 
-- KeyAgreement 
-- KeyEncipherment 
-- None (default) 
-- NonRepudiation 

и KeyUsageProperty с

-- All 
-- Decrypt 
-- KeyAgreement 
-- None (default) 
-- Sign 

Вы определенно связаны с v4? Если вы можете перейти на v5, вы сможете достичь того, что вам нужно.

0

Вы можете использовать поставщик сертификатов PS для доступа к различным хранилищам сертификатов (пользовательский или машинный), но это не поможет с вашей проблемой OID. Я предлагаю вам посмотреть поддержку .NET для сертификатов X509. Google ".net x509 certificate", и вы найдете класс X509Certificate в MSDN. Оттуда прочитайте документацию по классу и любую обзорную документацию, чтобы узнать, поддерживается ли создание OID. Если .NET не поддерживает его, вам придется использовать P/Invoke для вызова API-интерфейсов Windows CNG (криптография следующего поколения)

Смежные вопросы