Cet article explique comment signer numériquement un projet macro sur Windows à l’aide d’un certificat. Si vous n’avez pas encore de certificat numérique, vous devez en obtenir un.
Conseil : Pour utiliser ou tester des projets de macro sur votre propre ordinateur, vous pouvez créer votre propre certificat de signature automatique à l’aide de l’outil Selfcert.exe. Vous trouverez plus d’informations à ce sujet ci-dessous.
Obtenir un certificat numérique
Vous pouvez obtenir un certificat numérique auprès d’une autorité de certification commerciale, de votre administrateur de sécurité interne ou d’un professionnel des technologies de l’information (IT).
Pour en savoir plus sur les autorités de certification qui offrent des services pour les produits Microsoft, consultez la liste des membres du programme de certificat racine Microsoft.
Dans la mesure où les certificats numériques que vous créez ne sont pas émis par une autorité de certification approuvée officielle, les projets macro signés à l’aide de ce type de certificat sont appelés projets auto-signés. Microsoft Office n’approuve les certificats auto-signés que sur les ordinateurs où le certificat d’auto-signature est ajouté au dossier Autorités de certification racines de confiance dans le magasin de certificats de l’utilisateur actuel. Cela le rend utile pour le test ou l’utilisation sur votre propre ordinateur ou un très petit nombre de machines que vous gérez, mais pas très bon pour distribuer des projets de macros à d’autres personnes.
Créer un certificat d’auto-signature
Afficher le certificat dans le magasin de certificats personnels
-
Ouvrez Microsoft Edge.
-
Entrez edge://settings/privacy dans la barre d’adresse.
-
Faites défiler jusqu’à la section Sécurité , puis sélectionnez Gérer les certificats.
Signer numériquement un projet de macro VBA dans Excel, PowerPoint, Publisher, Visio, Outlook ou Word
-
Ouvrez le fichier qui contient le projet macro à signer.
-
Sous l’onglet Développeur, dans le groupe Code, cliquez sur Visual Basic.
Remarque : Si l’onglet Développeur n’est pas disponible : cliquez sur l’onglet Fichier . Cliquez sur Options. Cliquez sur Personnaliser le ruban. Dans la liste Personnaliser le ruban , cliquez sur Développeur, puis sur OK.
-
Dans Visual Basic, dans le menu Outils, cliquez sur Signature numérique.
-
La boîte de dialogue Signature numérique s’affiche.
-
Sélectionnez un certificat et cliquez sur OK.
Remarque : Si vous n’avez pas sélectionné de certificat numérique ou si vous souhaitez en utiliser un autre, cliquez sur Choisir. Sélectionnez un certificat et cliquez sur OK.
Ajouter un horodatage à votre signature
Lorsque les utilisateurs exécutent votre macro VBA, Office vérifie la signature et le certificat avec lequel elle a été signée. L’ajout d’un horodatage à votre signature signifie que votre macro sera toujours traitée comme signée, même après l’expiration de votre certificat, tant que le certificat n’est pas révoqué. Cela peut réduire les interruptions pour les utilisateurs.
Un certificat qui a simplement expiré peut toujours être utilisé pour valider le code. Il ne peut tout simplement pas être utilisé pour signer un nouveau code.
Pour ajouter un horodatage, vous devez ajouter trois clés à votre registre.
Attention : La modification incorrecte du registre peut endommager votre système. Avant d’apporter des modifications au registre, nous vous recommandons de sauvegarder toutes les données de valeur sur l’ordinateur.
Touche |
Type |
Description |
---|---|---|
HKCU\Software\Microsoft\VBA\Security\TimeStampURL |
REG_SZ |
URL de votre serveur d’horodatage préféré. (Obligatoire) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryCount |
REG_DWORD |
Nombre de tentatives de connexion de Visual Basic Editor au serveur d’horodatage avant d’échouer. (Facultatif - Si vous ne le définissez pas, Visual Basic Editor ne tentera de contacter le serveur qu’une seule fois) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryDelay |
REG_DWORD |
Nombre de secondes (en millisecondes) pendant lesquelles Visual Basic Editor attend entre une nouvelle tentative de connexion au serveur d’horodatage. (Facultatif : si vous ne le définissez pas, il n’y aura aucun délai entre les nouvelles tentatives) |
Une fois que vous avez ajouté une entrée TimeStampURL opérationnelle, Visual Basic Editor ajoute automatiquement un horodatage chaque fois que vous signez numériquement une macro.
Notes supplémentaires
-
Il est recommandé de signer les macros uniquement une fois que votre solution a été testée et prête à être distribuée : lorsque le code d’un projet de macro signé est modifié d’une manière ou d’une autre, sa signature numérique est supprimée. Toutefois, si vous disposez sur votre ordinateur du certificat numérique valide précédemment utilisé pour signer le projet, une nouvelle signature du projet macro interviendra automatiquement lors de l’enregistrement.
-
Une façon d’empêcher les utilisateurs de modifier accidentellement votre projet de macro et d’invalider votre signature consiste à verrouiller le projet de macro avant d’appliquer la signature. Votre signature numérique garantit que le projet n’a pas été falsifié depuis que vous l’avez signé, mais elle ne prouve pas que vous avez écrit le projet. Même si vous avez verrouillé votre projet de macro, un autre utilisateur peut toujours remplacer votre signature par une autre signature. Les administrateurs d’entreprise peuvent également re-signer des modèles et des compléments pour s’assurer que seul le contenu approuvé est exécuté sur les ordinateurs de l’entreprise.
-
Si vous créez un complément qui ajoute du code à un projet macro, votre code doit déterminer si le projet est signé numériquement et indiquer aux utilisateurs les conséquences de la modification d’un projet signé avant de continuer.
-
Les utilisateurs qui utilisent des certificats commerciaux peuvent rencontrer des blocs en raison de la limitation des algorithmes de hachage pris en charge lors de la signature. Vous pouvez ajouter une clé-valeur de Registre DWORD V1HashEnhanced pour choisir un autre algorithme de hachage, sous HKCU\SOFTWARE\Microsoft\VBA\Security avec des règles d’algorithme de valeur (1 à SHA1, 2 à SHA256, 3 à SHA384, 4 à SHA512 et d’autres à MD5). Ce paramètre est disponible dans les dernières versions du canal CC.
En savoir plus
Activer ou désactiver les macros dans les fichiers Microsoft 365
Remarque : Cet article a été créé par une personne avec l’aide d’une intelligence artificielle (IA).