Questo articolo descrive come firmare digitalmente un progetto macro in Windows usando un certificato. Se non hai ancora un certificato digitale, dovrai ottenerne uno.
Suggerimento
Per usare o testare progetti macro nel proprio computer, è possibile creare un certificato di firma automatica usando lo strumento Selfcert.exe. Troverai maggiori dettagli su questo di seguito.
Ottenere un certificato digitale
È possibile ottenere un certificato digitale da un'autorità di certificazione (CA) commerciale, dall'amministratore della sicurezza interna o da un professionista IT (Information Technology).
Per ulteriori informazioni sulle autorità di certificazione che offrono servizi per i prodotti Microsoft, vedere l'elenco dei membri del programma Microsoft Root Certificate.
Utilizzare un certificato autofirmato
Poiché un certificato digitale creato da un utente non viene rilasciato da un'autorità di certificazione formale attendibile, i progetti macro firmati usando un certificato di questo tipo vengono considerati progetti autofirmati. Microsoft Office considera attendibile un certificato autofirmato solo in un computer in cui il certificato autofirmato è stato aggiunto alla cartella Certificazione radice attendibile nell'archivio Certificati - Utente corrente. Ciò lo rende buono per testare o utilizzare sul tuo computer o su un numero molto piccolo di computer che gestisci, ma non molto buono per distribuire progetti macro ad altre persone.
Creare un certificato autofirmato
Quale versione di Windows è in uso?
Windows 10 o versioni più recenti
Passare a C:\Program Files (x86)\Microsoft Office\root\Office16.
Suggerimento
Se non si trova in questa cartella, provare C:\Program Files\Microsoft Office\root\Office16
Fare clic su SelfCert.exe. Viene visualizzata la finestra di dialogo Crea certificato digitale.
Nella casella Nome certificato digitare un nome descrittivo per il certificato.
Fare clic su OK.
Quando viene visualizzato il messaggio SelfCert eseguito, fare clic su OK.
Windows 8
- Passare a C:\Program Files\Microsoft Office\<Office version>\.
- Fare clic su SelfCert.exe. Viene visualizzata la finestra di dialogo Crea certificato digitale.
- Nella casella Nome certificato digitare un nome descrittivo per il certificato.
- Fare clic su OK.
- Quando viene visualizzato il messaggio SelfCert eseguito, fare clic su OK.
Visualizzare il certificato nell'archivio Certificati personali
- Apri Microsoft Edge.
- Immettere edge://settings/privacy nella barra degli indirizzi.
- Scorri verso il basso fino alla sezione Sicurezza e seleziona Gestisci certificati.
Aggiungere la firma digitale a un progetto macro VBA in Excel, PowerPoint, Publisher, Visio, Outlook o Word
Aprire il file contenente il progetto macro che si desidera firmare.
Nel gruppo Codice della scheda Sviluppo fare clic su Visual Basic.
Nota
Se la scheda Sviluppo non è disponibile: Fare clic sulla scheda File . Fare clic su Opzioni. Fare clic su Personalizza barra multifunzione. Nell'elenco Personalizza barra multifunzione selezionare Sviluppo e quindi fare clic su OK.
In Visual Basic scegliere Firma digitale dal menu Strumenti.
Verrà visualizzata la finestra di dialogo Firma digitale.
Selezionare un certificato e fare clic su OK.
Nota
Se non è stato selezionato alcun certificato digitale o si desidera utilizzarne un altro, fare clic su Scegli. Selezionare il certificato e fare clic su OK.
Aggiungere un indicatore data e ora alla firma
Quando gli utenti eseguono la macro VBA, Office controlla la firma e il certificato con cui è stata firmata. Se si aggiunge un indicatore data e ora alla firma, la macro continuerà a essere considerata firmata anche dopo la scadenza del certificato, purché non venga revocato. Questo può ridurre i disagi per gli utenti.
Un certificato appena scaduto può comunque essere usato per convalidare il codice, ma non può essere usato per firmare un nuovo codice.
Per aggiungere un timestamp, è necessario aggiungere tre chiavi al Registro di sistema.
Attenzione
La modifica non corretta del Registro di sistema può provocare seri danni al sistema. Prima di apportare modifiche al Registro di sistema, è consigliabile eseguire il backup di tutti i dati importanti nel computer.
| Tasto | Tipo | Descrizione |
|---|---|---|
| HKCU\Software\Microsoft\VBA\Security\TimeStampURL | REG_SZ | L'URL del server di timestamp preferito. (Obbligatorio) |
| HKCU\Software\Microsoft\VBA\Security\TimeStampRetryCount | REG_DWORD | Il numero di volte in cui Visual Basic Editor tenterà di connettersi al server di timestamp prima dell'errore. (Facoltativo : se non si imposta questa opzione, Visual Basic Editor tenterà di contattare il server una sola volta) |
| HKCU\Software\Microsoft\VBA\Security\TimeStampRetryDelay | REG_DWORD | Il numero di secondi (in millisecondi) che l'editor di Visual Basic attende tra un nuovo tentativo e l'altro di connettersi al server di timestamp. (Facoltativo : se non si imposta questa opzione, non ci sarà alcun ritardo tra un tentativo e l'altro) |
Dopo aver aggiunto una voce TimeStampURL funzionante, Visual Basic Editor aggiungerà automaticamente un timestamp ogni volta che firmi digitalmente una macro.
Note aggiuntive
- È consigliabile firmare le macro solo dopo che la soluzione è stata testata e pronta per la distribuzione: quando il codice in un progetto macro firmato viene modificato in qualsiasi modo, la sua firma digitale viene rimossa. Se però si ha il certificato digitale valido usato in precedenza per firmare il progetto nel computer in uso, il progetto macro viene automaticamente firmato di nuovo al momento del salvataggio.
- Un modo per impedire agli utenti di modificare accidentalmente il progetto macro e invalidare la firma consiste nel bloccare il progetto macro prima di applicare la firma. La tua firma digitale assicura che il progetto non sia stato manomesso da quando l'hai firmato, ma non prova che tu abbia scritto il progetto. Anche se il progetto macro è stato bloccato, un altro utente potrebbe comunque essere in grado di sostituire la firma con un'altra firma. Gli amministratori aziendali possono anche firmare nuovamente modelli e componenti aggiuntivi per garantire che nei computer aziendali vengano eseguiti solo contenuti approvati.
- Se si crea un componente aggiuntivo che consente di aggiungere codice a un progetto macro, il codice deve essere in grado di stabilire se il progetto contiene una firma digitale e avvisare gli utenti delle conseguenze derivanti dalla modifica di un progetto firmato prima che procedano.
- Gli utenti che usano certificati commerciali possono incontrare blocchi a causa della limitazione degli algoritmi hash supportati nella firma. È possibile aggiungere un valore chiave del Registro di sistema DWORDV1HashEnhanced per scegliere un altro algoritmo hash, in HKCU\SOFTWARE\Microsoft\VBA\Security con regole dell'algoritmo di valore (da 1 a SHA1, 2 a SHA256, 3 a SHA384, 4 a SHA512 e altri a MD5). Questa impostazione è disponibile nelle versioni più recenti del canale CC.
Altre informazioni
Abilitare o disabilitare le macro nei file di Microsoft 365
Nota
Questo articolo è stato creato da una persona con l'assistenza di un'intelligenza artificiale (Al).