f3-logo-flexerasoftware

Il peut arriver que vous ayez besoin d’installer un driver non signé Microsoft lors de l’installation d’un logiciel.
Vous obtenez alors le message suivant par défaut :

certif1
Pour remédier à ce problème nous allons gérer les certificats éditeurs intégrés aux drivers.

Dans un environnement de test, installez le programme en cochant la case « Toujours faire confiance à l’éditeur … ».
Exécutez ensuite certmgr.msc et accédez à la partie “Editeur approuvés\Certificats”.
Le certificat de l’éditeur apparait.

certif2
Faire un clic droit sur le certificat et cliquez sur “Toutes les tâches -> Exporter”

certif3
Vous pouvez bien sur choisir votre format. Pour moi, et pour le reste du tutoriel ce sera p7b.

certif4

Donnez un nom à votre fichier exporté.

certif5
Nous disposons maintenant du certificat de notre environnement de test.

Maintenant nous allons implémenter celui-ci dans notre projet.
Commençons par mettre notre certificat dans le répertoire d’installation de notre logiciel.

certif6
Créons ensuite une Custom Action (New EXE\Path referencing a directory) pour installer le certificat dans le bon conteneur.

certif7
Working Directory : SystemFolder
Command Line : certutil.exe -f -enterprise -addstore TrustedPublisher “[INSTALLDIR]Virtualbox_x86_I_4.3.16.p7b”

Attention : dans Return Processing choisir Synchronous (Ignores exit code)

Comme dans mon cas je travaille avec un MSI chainé, je place dans mon installation de certificat après InstallFinalize.
Pour une question de sécurité, nous retirerons ce certificat immédiatement après l’installation des drivers. Pour cela nous créons une nouvelle Custom Action (New EXE\Path referencing a directory)

certif8
Working Directory : SystemFolder
Command Line : certutil.exe -enterprise -delstore TrustedPublisher “Oracle Corporation”
Le nom pour la suppression est celui affiché dans la colonne «”Délivré à” de la console certmgr.

Attention : dans Return Processing choisir Synchronous (Ignores exit code)

Nous modifierons l’action “In-Script Execution” en la plaçant à “Commit Execution In System Context”. Cela nous permettra de jouer cette action qu’après l’installation des drivers.
L’installation devra se faire après IsChainPackageCommit.

Bien sûr en fonction de vos besoins vous pourrez implémenter cet exemple soit dans un MSI soit dans un MST.