2016-01-28 3 views
5

PowerShell strumento 4.0Come creare il certificato di firma del codice attraverso il cmdlet New-SelfSignedCertificate

makecert ha la possibilità -eku per descrivere gli identificatori di oggetto di utilizzo chiavi avanzato (OID) nel certificato. Permette di effettuare i certificati per la firma del codice e per altri scopi. Ma non è un cmdlet.

Le nuove versioni di PowerShell hanno il cmdlet New-SelfSignedCertificate per il test locale degli script. Ma crea il certificato che non può essere utilizzato per la firma del codice:

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

Non vedo un'opzione che è simile di -eku.

Come posso impostare la destinazione del mio nuovo certificato autofirmato (creato tramite il cmdlet New-SelfSignedCertificate) per la sua possibilità di utilizzo per la firma del codice? O è possibile fare lo stesso tramite un altro cmdlet?

risposta

2

La versione di New-SelfSignedCertificate su PS 4 è piuttosto di base.

Tuttavia, Powershell v5 dispone dei parametri necessari per creare chiavi specifiche.

In particolare un parametro Keyusage che prende

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

e KeyUsageProperty prendendo

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

State specificamente legato a V4? Se è possibile eseguire l'aggiornamento alla v5, dovrebbe essere in grado di ottenere ciò di cui si ha bisogno.

0

È possibile utilizzare il provider di certificati PS per accedere a diversi negozi di certificati (utente o computer), ma ciò non aiuta il problema OID. Ti suggerisco di guardare il supporto .NET per i certificati X509. Google ".net x509 certificate" e troverai la classe X509Certificate su MSDN. Da lì leggere la documentazione della classe e qualsiasi documentazione di panoramica per vedere se la creazione di OID è supportata. Se .NET non lo supporta, è necessario utilizzare P/Invoke per richiamare API native CNG di Windows (crittografia di prossima generazione)