2010-06-02 12 views
18

È possibile impostare gli attributi di utilizzo della chiave utilizzando makecert o qualsiasi altro strumento che posso utilizzare per generare i miei certificati di prova?Impostazione degli attributi di utilizzo della chiave con Makecert

Il motivo per cui sono interessato è che i certificati utilizzati per il trasporto di BizTalk Server AS2 richiedono un utilizzo chiave della firma digitale per la firma e l'encodifica dei dati o cifratura delle chiavi per la crittografia/decrittografia e voglio giocare con questa funzionalità.

vedo come impostare avanzate attributi chiave di utilizzo con makecert, ma non utilizzo chiave.

+0

Penso che si sta cercando l'opzione '-sky' – AaA

risposta

-4

È possibile utilizzare l'opzione -eku per specificare l'utilizzo della chiave per il certificato.

Vedi i dettagli qui: http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx

+3

-eku consente di impostare * * estesi usi chiave, non Usages chiave. – nlawalker

+1

Hum, vedo ... In tal caso, ti suggerisco di provare a usare Openssl per generare il tuo cert. Non conosco la risposta al tuo problema concreto usando openssl ma è uno strumento potente (meglio di Makecert secondo me). Ti suggerisco di aggiungere il flag "openssl" alla tua domanda e cambiare il titolo in "makecert/Openssl". Forse in questo modo otterrai risposte più utili. Per quanto riguarda –

5

Anche se non si può fare un cert auto-firmato e impostare i parametri di utilizzo chiavi avanzato utilizzando makecert ho pensato di salvare tutti la briga di cercare di utilizzare andare giù per il sentiero di usare OpenSSL per generare un cert su Windows. Invece, è possibile utilizzare certreq (che è disponibile se si dispone già di makecert) e modificare la propria richiesta per impostare i parametri richiesti.

Ad esempio, questo imposta un certificato con un EKU di Document Encryption (1.3.6.1.4.1.311.80.1) e utilizzi chiave di Encipherment chiave e Codifica dati.

Creare un nuovo file, MyCert.inf:

[Version] 
Signature = "$Windows NT$" 

[Strings] 
szOID_ENHANCED_KEY_USAGE = "2.5.29.37" 
szOID_DOCUMENT_ENCRYPTION = "1.3.6.1.4.1.311.80.1" 

[NewRequest] 
Subject = "[email protected]" 
MachineKeySet = false 
KeyLength = 2048 
KeySpec = AT_KEYEXCHANGE 
HashAlgorithm = Sha1 
Exportable = true 
RequestType = Cert 

KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE | CERT_DATA_ENCIPHERMENT_KEY_USAGE" 
ValidityPeriod = "Years" 
ValidityPeriodUnits = "1000" 

[Extensions] 
%szOID_ENHANCED_KEY_USAGE% = "{text}%szOID_DOCUMENT_ENCRYPTION%" 

Basta impostare il Subject a tutto ciò che è necessario.

Poi gestita:

certreq -new MyCert.inf MyCert.cer 

Questo genererà la chiave pubblica (X509 cert) ed installarlo sul tuo attuale archivio personale dell'utente sulla macchina. Puoi esportarlo da lì se lo desideri.

L'ho utilizzato per generare un certificato per la crittografia di PowerShell DSC, per il test.

Example cert

Per maggiori dettagli: https://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New

+0

con 'makecert' puoi usare' -eku' per impostare l'uso della chiave estesa, ma stavo cercando un modo per impostare due o più usi della chiave estesa. – AaA