Utilizzo del certificato di firma del codice

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.

VO e I certificati di firma del codice EV non devono essere installati manualmente sul computer, il che potrebbe causare problemi di configurazione. I certificati spediti su YubiKeys da SSL.com possono essere utilizzati senza installazione aggiuntiva oltre all'installazione del Minidriver YubiKey Smart Card e collegando il token al tuo computer. Certificati ordinati tramite attestazione remota deve essere scaricato e installato sul dispositivo contenente la chiave privata (ad es. YubiKey FIPS o altro hardware supportato), non nell'archivio certificati del computer.
Se hai intenzione di firmare i driver di Windows 10 con un certificato di firma del codice EV, dovrai farlo registro con il programma per sviluppatori hardware di Windows.
Per istruzioni sull'utilizzo del certificato di firma del codice OV / IV o EV con Java, fare riferimento al nostro Guida alla firma del codice Java.

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

Inizio PowerShell

Inizia un PowerShell finestra di comando cercando "Powershell" nel file Inizio 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"
  • I /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.
  • I /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.Inserisci il PIN
Nota: Se si firmano file di codice che verranno inclusi in un programma di installazione (come un file MSI di Windows), sarà necessario firmare questi file prima di creare il programma di installazione, quindi firmare il file di installazione stesso.

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"
Nota: Assicurati di utilizzare SignTool's /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.
Nota: I /td opzione devono 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.
Nota: Per impostazione predefinita, SSL.com supporta i timestamp delle chiavi ECDSA.

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 Properties dal menu, quindi selezionando il file Firme digitali tab. Visualizza i dettagli su una firma selezionandola e facendo clic su Dettagli pulsante.

Firme digitali

Qui possiamo vedere che il file contiene una firma digitale valida, creata da SSL Corp il 28 giugno 2020.

Dettagli della firma digitale

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.

Pacchetto codice segno e data / ora

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.

Grazie per aver scelto SSL.com! In caso di domande, contattaci tramite e-mail all'indirizzo Support@SSL.com, chiama 1-877-SSL-SECUREo fai semplicemente clic sul link della chat in basso a destra in questa pagina.

Iscriviti alla newsletter di SSL.com

Non perdere nuovi articoli e aggiornamenti da SSL.com

Rimani informato e sicuro

SSL.com è un leader globale nella sicurezza informatica, PKI e certificati digitali. Iscriviti per ricevere le ultime notizie del settore, suggerimenti e annunci di prodotti da SSL.com.

Ci piacerebbe il tuo feedback

Partecipa al nostro sondaggio e facci sapere cosa ne pensi del tuo recente acquisto.