2013-04-09 11 views
13

Recentemente abbiamo acquistato un certificato di firma del codice EV da DigiCert per firmare il nostro MSI per aggirare il messaggio di avviso di Windows SmartScreen. Il problema è che il certificato è stato consegnato a un token USB che non consente l'esportazione della chiave privata. Il nostro ambiente di sviluppo è su una VM ospitata, quindi non c'è modo di collegare il token USB alla VM host.Come utilizzare un certificato di firma del codice EV su una macchina virtuale per firmare un MSI

Qualcuno ha una soluzione per l'utilizzo di un certificato di firma del codice EV su una macchina virtuale ospitata? Tutti i fornitori di certificati consegnano questo tipo di certificato a un token hardware? Come si firma codice un MSI in un ambiente virtuale utilizzando questo tipo di certificato?

+0

Ho la stessa domanda. Qualche risultato su questo? –

+0

possibile duplicato di [Automatizza firma codice Extended Validation (EV)] (http://stackoverflow.com/questions/17927895/automate-extented-validation-ev-code-signing) –

risposta

1

I certificati di firma del codice EV sono necessari per utilizzare l'hardware speciale per memorizzare la chiave privata. Ciò fa parte di ciò che li rende più costosi e più sicuri rispetto ai certificati standard. Il mio suggerimento sarebbe quello di firmare l'eseguibile sulla macchina host utilizzando il file signtool.exe come passo post-build.

I certificati di firma del codice normale non hanno i requisiti hardware, ma non sono come "SmartScreen Filter Friendly" come i certificati EV.

0

Alcuni software di virtualizzazione incluso VMware consentono di reindirizzare i dispositivi USB.

+1

... e assicurati di connetterti al tuo VM con vnc, non Remote Desktop – azhrei

+0

@azhrei Sai perché il dongle sembra essere disconnesso quando si utilizza Desktop remoto? Una volta che utilizzo la finestra della console in vmware, sembra che vada bene (il software del certificato vede il dongle) –

+0

@NeilVarnas non so perché - azzardo un'ipotesi che il driver della chiave di protezione richieda esplicitamente (e controlli) di essere sulla console – azhrei

2

Non ho avuto assolutamente nessun problema con il nostro. Siamo passati da un certificato di firma del codice standard supportato da PFX (file) a un certificato di firma del codice EV supportato da token USB in meno di 15 minuti.

ho semplicemente impostare il dispositivo token USB per la connessione al cliente sistema operativo in VMWare (vedi icone nella parte inferiore destra della finestra di sistema operativo client per i dispositivi), installati i driver di periferica necessario, impostare le opzioni per richiedere una password per sbloccare solo una volta per sessione, quindi erano buoni per andare.

Per quanto riguarda COME firmare, si firma proprio come si farebbe con qualsiasi altro certificato. Se nessun altro certificato di firma del codice applicabile si trova nell'archivio certificati del sistema operativo, , non è nemmeno necessario specificare dove è il certificato.

Mi preoccupavo che avremmo avuto problemi, ma non l'abbiamo fatto. Quindi, non penso che lo farai, e non so perché avresti problemi.

+0

Dopo il certificato isntallign sulla VM, posso firmare un assembly con CMD, ma ogni volta che l'agente di compilazione (nel nostro caso Team City) tenta di eseguire una riga di comando o chiamare un file batch con una riga di comando, ritorna con "Errore SignTool: non sono stati trovati certificati che soddisfino tutti i criteri indicati". L'agente di creazione è un amministratore su quella macchina. hai incontrato questo? Se no forse potresti elaborare il tuo setup? –

+0

@NeilVarnas aggiungi '/ debug'al tuo cmd di signtool e calcola in che modo signtool elimina tutti i tuoi certificati nel caso TeamCity. Potresti essere in grado di regolare la tua invocazione di signtool per dare suggerimenti a firmtool su quale certificato scegliere. – azhrei

+0

@NeilVarnas No, non ho mai incontrato nulla del genere. Sembra qualcosa di specifico per il tuo agente di costruzione. Tutta la mia firma è tramite signtool.exe. –

0

Per chiunque abbia avuto questo problema, abbiamo utilizzato VNC Server per connettersi alla VM su cui era presente il token. Non ha funzionato su RDP solo VNC.

Apparentemente, VNC è come avere l'accesso alla console (per quanto riguarda il dvd RV).

Problemi correlati