Questa pagina web fornisce istruzioni sull'utilizzo di un SSL.com OV or EV certificato di firma del codice con SignTool di Microsoft e SSL.com SSL Manager.
Queste istruzioni presuppongono che il certificato di firma del codice sia stato installato o che sia presente su un token hardware. Per la firma del codice basata su cloud utilizzando la piattaforma eSigner, fare riferimento al Panoramica pagina e questo guida all'iscrizione.
Ricorda che per i certificati di firma del codice OV ed EV basati su hardware la chiave privata esiste solo sul token USB YubiKey FIPS che ti è stato inviato e che il token deve essere allegato al computer utilizzato per firmare l'applicazione. Anche gli utenti Windows con token YubiKey FIPS dovrebbero scaricare e installare il Minidriver YubiKey Smart Card prima di utilizzare il loro token.
Firma di un eseguibile con SignTool
Installazione Windows SDK e SignTool
SignTool è incluso in SDK di Windows 10. Dopo l'installazione, SignTool si troverà sotto:
C: \ Programmi (x86) \ Windows Kits \ 10 \ bin \ \ x64 \ signtool.exe
Inizia PowerShell
Inizia un PowerShell finestra di comando cercando "Powershell" nel file Inizia menu e facendo clic sull'applicazione desktop.
Powershell è un'interfaccia a riga di comando per i servizi principali di Windows. Puoi usarlo per eseguire SignTool e firmare il tuo codice.
Per EV codice firma, allega il tuo token USB al tuo computer (se non l'hai già fatto). Se si utilizza eSigner, installare Adattatore per chiave cloud eSigner
Ricorda che la chiave privata esiste solo sul token USB che ti è stato inviato e quello il token deve essere allegato al computer utilizzato per firmare l'applicazione. Questo passaggio deve essere ignorato se si utilizza un certificato di firma del codice OV.
Segno eseguibile
Puoi firmare un eseguibile eseguendo il comando seguente nella finestra di Powershell. Se utilizzi la firma su cloud eSigner con signtool.exe, assicurati di installarlo Firma elettronica CKA
. \ signtool.exe sign / fd sha256 / a "C: \ path \ to \ MyExecutable.exe"
- La rotta
/fd
L'opzione seleziona l'algoritmo digest da utilizzare durante la firma. Build di Windows 10 SDK, HLK, WDK e ADK 20236 e versioni successive richiedono che questa opzione sia impostata durante la firma. SHA256 è consigliato su SHA1 per sicurezza. - La rotta
/a
L'opzione indica a SignTool di trovare automaticamente un certificato di firma del codice appropriato per l'eseguibile. - Se stai utilizzando un certificato di firma del codice EV, ti verrà richiesto il PIN del token USB. Se hai bisogno di aiuto per trovare il tuo PIN, fai riferimento a questo come fare.
Selezione di un certificato di firma
Specificare il nome del soggetto
Se hai più di un codice che firma token o certificati USB installati, puoi farlo specifica il certificato si desidera utilizzare includendo il suo Nome soggetto tramite /n
opzione.
Puoi trovare il nome del soggetto del tuo certificato EV CS utilizzando lo strumento di gestione dei certificati di Microsoft CertMgr. Apri lo strumento dal menu Start e cerca il tuo certificato EV CS nella cartella “Personale”, sotto “Certificati”, come mostrato nell'immagine sotto. Il nome del soggetto è il campo "Rilasciato a" in certmgr.
Nell'immagine sopra il nome del soggetto del certificato è example
. È possibile specificare questo valore in SignTool con il seguente comando.
. \ signtool.exe sign / fd sha256 / n "example" "C: \ path \ to \ MyExecutable.exe"
Specifica hash SHA1
Se disponi di più certificati con lo stesso nome oggetto, puoi anche utilizzare l'hash SHA1 (o "identificazione personale") di un certificato per selezionarlo per la firma. Sostituire THUMBPRINT
nel comando seguente con l'hash SHA1 effettivo del certificato. Puoi trovare questo valore visualizzando i dettagli del certificato in certmgr e cercando il file Thumbprint
campo (assicurati di rimuovere eventuali caratteri di spazio dall'identificazione personale prima di utilizzarlo nel tuo comando).
. \ signtool.exe sign / fd sha256 / sha1 THUMBPRINT "C: \ path \ to \ MyExecutable.exe"
Usa un file PKCS # 12 / PFX
Se si dispone di un certificato di firma del codice e di una chiave privata in un file PKCS # 12 (noto anche come file PFX o P12), è possibile specificare il file e la relativa password sulla riga di comando:
. \ signtool.exe sign / fd sha256 / f "C: \ path \ to \ MyCertificate.pfx" / p password "C: \ path \ to \ MyExecutable.exe"
Marcatura temporale
La marcatura temporale del codice consentirà di essere considerato attendibile dopo la scadenza del certificato di firma del codice. Se vuoi aggiungere un file timestamp nel file binario firmato, puoi farlo usando SignTool's /tr
opzione, che dovrebbe essere seguita impostando l'algoritmo del digest del timestamp con /td
. Il comando nello snippet di seguito include un timestamp da SSL.comtimestamp di servizio durante la firma di un eseguibile.
. \ signtool.exe sign / fd sha256 / tr http://ts.ssl.com / td sha256 / a "C: \ path \ to \ MyExecutable.exe"
/tr
opzione (specificare l'URL del server di time stamp RFC 3161), non /t
(URL del server timestamp), che non è compatibile con il server timestamp di SSL.com./td
opzione devi obbligatoriamente seguire la /tr
opzione. Se l'algoritmo del digest del timestamp viene specificato prima del server del timestamp, verrà utilizzato l'algoritmo SHA-1 predefinito. Build di Windows 10 SDK, HLK, WDK e ADK 20236 e versioni successive richiedono l'uso di /tr
quando timestamp. SHA256 è consigliato rispetto a SHA1 per la sicurezza.Se riscontri questo errore:
The timestamp certificate does not meet a minimum public key length requirement
, è necessario contattare il fornitore del software per consentire i timestamp dalle chiavi ECDSA.Se non è possibile per il tuo fornitore di software consentire l'utilizzo dell'endpoint normale, puoi utilizzare questo endpoint legacy
http://ts.ssl.com/legacy
per ottenere un timestamp da un'unità di timestamp RSA.Altre Opzioni
Altre importanti opzioni di SignTool sono:
/d
: Aggiungi una descrizione del codice firmato. Per esempio,/d "test code"
./du
: Aggiungi un URL con una descrizione estesa del codice firmato. Per esempio,/du https://your_website.tld/project/description
.
Utilizzando tutte le opzioni sopra (ma omettendo /a
, /sha1
, o /f
perché stiamo specificando il nome del soggetto del certificato con /n
, la nostra riga di comando è simile a:
signtool.exe sign / n "example" / fd sha256 / tr http://ts.ssl.com / td sha256 / d "test code" / du https: //your_website.tld/project/description "C: \ path \ to \ MyExecutable.exe "
Verifica firma
Usa questo comando per verificare il tuo codice firmato (nota che il file /pa
l'opzione deve essere presente nel comando):
. \ signtool.exe verifica / pa "C: \ path \ to \ MyExecutable.exe"
Se il tuo file è stato firmato correttamente, dovresti vedere un output come questo:
File: C: \ path \ to \ MyExecutable.exe Index Algorithm Timestamp =================================== ===== 0 sha256 RFC3161 verificato con successo: C: \ path \ to \ MyExecutable.exe
Puoi anche verificare che un file sia stato firmato facendo clic con il pulsante destro del mouse sulla sua icona e selezionando Proprietà dal menu, quindi selezionando il file Firme digitali tab. Visualizza i dettagli su una firma selezionandola e facendo clic su Dettagli pulsante.
Qui possiamo vedere che il file contiene una firma digitale valida, creata da SSL Corp il 28 giugno 2020.
Firma un eseguibile con SSL Manager
Se si preferisce un approccio più basato sulla grafica, è possibile utilizzare SSL.comil software interno, SSL Manager, per firmare i tuoi file. Molti clienti preferiscono utilizzare SSL Manager perché offre l'ulteriore vantaggio di avere un facile accesso a tutti i certificati in un'unica interfaccia unificata. Per istruzioni su download e installazione SSL Manager, si prega di fare riferimento al nostro guida d'installazione.
Per firmare un eseguibile, inizia selezionando Firma codice> Pacchetto codice firma e data / ora da SSL Managermenu di.
Nel modulo di firma del codice, è possibile selezionare il file eseguibile e il certificato di firma del codice (da un file o un archivio certificati) e uno dei server di data e ora disponibili. Al termine, fare clic su Segno pulsante per firmare il codice. Se stai caricando un certificato da un file PFX, dovrai inserire la password del file. Se stai utilizzando un certificato di firma del codice EV, ti verrà richiesto il PIN del token USB.
Oltre alla firma del codice, SSL Manager offre molte potenti funzionalità. Per maggiori dettagli, fare riferimento a SSL Managerdocumentazione di, specialmente il Menu Firma codice.