0
votes

Déployer le complément VSTO sans signer de certificat?

C'est la première fois que je tente de déployer un complément VSTO sur le système d'un utilisateur et je rencontre une barrière de sécurité. Le complément a été créé dans Visual Studio 2019 Community Edition et est destiné à s'intégrer à Microsoft Excel. L'utilisateur exécute Office 365.

Lors de l'exécution de Setup.exe, l'utilisateur reçoit l'invite de confirmation initiale et clique sur "Installer". Une barre de progression apparaît brièvement et s'exécute à environ 25% du trajet, puis un message d'erreur apparaît: "La fonctionnalité personnalisée dans cette application ne fonctionnera pas car le certificat utilisé pour signer le manifeste de déploiement pour [le complément] ou son emplacement est pas digne de confiance. "

Je comprends que Microsoft aimerait que je paie pour un certificat de signature, mais j'espère que cela fonctionnera tout en évitant ces dépenses.

Cet article de Microsoft décrit l'utilisation d'un certificat numérique comme "une étape facultative": ClickOnce et Authenticode . Cet article indique qu'un autre itinéraire est pour l'utilisateur de cliquer sur «l'invite de confiance ClickOnce» pendant l'installation: Accordez la confiance aux solutions Office . Mais pour autant que je comprends le processus, il est interrompu avant même d'atteindre l'invite de confiance ClickOnce, de sorte que l'utilisateur n'obtient jamais cette option.

À titre de comparaison, l'utilisateur a exécuté l'installation sur un système plus ancien. Sur ce système, il a reçu l'invite ClickOnce, a approuvé le logiciel et l'installation s'est déroulée avec succès jusqu'à la fin. Cela indique très clairement que le problème sur le système plus récent est un paramètre de sécurité.

J'ai demandé à l'utilisateur d'ouvrir Excel, d'accéder à Options> Centre de gestion de la confidentialité> Paramètres du centre de confiance> Compléments et de supprimer la coche de «Exiger que les compléments d'application soient signés par Trusted Publisher». Il n'y avait pas de coche au départ, donc ce paramètre n'était pas le problème.

J'ai demandé à l'utilisateur d'accéder à l'invite de commande et de nettoyer tous les restes de l'installation qui a échoué avec rundll32 dfshim CleanOnlineAppCache avant chaque nouvelle tentative d'installation.

Je ne sais pas où chercher ensuite. Toute aide serait très appréciée.


0 commentaires

3 Réponses :


0
votes

Sur la machine cible. vous devez installer et faire confiance au certificat utilisé pour signer votre addin (voir l'onglet Signature des options de votre projet)


0 commentaires

1
votes

Une solution de contournement relativement simple: vous empaquetez le dossier "publier" sous forme de fichier ZIP, désactivez les vérifications ou déploiements en ligne (dans les paramètres du projet, choisissez de publier localement, pas sur un site Web. L'installation à partir d'un site Web ou la mise à jour automatique sont gagnées ne fonctionne pas sans certificat normal). Ensuite, donnez à votre utilisateur ce ZIP. L'utilisateur télécharge ce fichier ZIP, puis cliquez avec le bouton droit sur le fichier ZIP et coche "Débloquer" . Puis décompresse et installe normalement. Maintenant, n'importe quel certificat devrait faire l'affaire. Cela s'applique si votre utilisateur télécharge votre fichier sur Internet.

L'idée est donc très simple: dites simplement à votre utilisateur de cliquer sur la case à cocher "Débloquer" avant d'extraire les fichiers de l'archive ZIP que vous avez envoyée et de les exécuter.

 entrez la description de l'image ici

Autre solution, il vous suffit de dire au système de l'utilisateur de faire confiance à votre certificat de développeur "auto-signé" (ajoutez votre certificat au magasin "Trusted Publishers" sur l'ordinateur de l'utilisateur). Pour cela, vous avez besoin des droits d'administrateur. Veuillez noter que les administrateurs des utilisateurs n'aimeront probablement pas cette idée, sauf si vous et votre utilisateur travaillez dans la même organisation. Voici les instructions: https : //docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate

Le meilleur et le plus simple serait bien sûr d'acheter un certificat de signature de code normal. Ils ne sont pas si chers, vous pouvez en obtenir un auprès de COMODO (SectiGo) par exemple pour quelque chose comme 70 $ / an auprès de leurs revendeurs.


3 commentaires

Votre option n ° 1 (compresser et envoyer le contenu du dossier «Publier») est en fait ce que j'ai fait, ce qui n'a malheureusement pas empêché le problème. Votre option n ° 2 est probablement la solution, mais je ne suis pas sûr de comprendre les instructions. Au lien que vous avez donné, l'étape 1 indique "dans votre navigateur Web, accédez à votre serveur de certification local". Où puis-je trouver mon serveur de certification local?


Dans l'option n ° 1, cliquer sur "Ublock" est très important. Vous devez ouvrir "Propriétés du fichier" dans le menu contextuel du fichier ZIP téléchargé pour accéder à cette boîte de dialogue. Je suis presque sûr que cela devrait fonctionner. # 2 Les instructions pas à pas de Microsoft lui-même se trouvent dans le lien ci-dessus, veuillez simplement le vérifier.


Saint fume, tu as raison! Nous venons de réessayer avec "Débloquer" et cela a fonctionné. Il ne m'est jamais venu à l'esprit dans un million d'années de regarder le paramètre "Débloquer" sur le fichier zip. Merci beaucoup!



0
votes

Qu'est-ce qui est requis pour le processus de certification, est-ce un processus rapide? Est-ce qu'ils me certifient / mon entreprise ou le code ??

C'est un processus rapide pour le processus:

Signez avec un certificat valide lors de la publication.

Ajoutez l'éditeur dans Trusted Publisher avant de procéder à l'installation lorsque les paramètres de macro sont d'un niveau de sécurité élevé.

Terminez l'installation.

Vous pouvez obtenir un certificat pour la signature du code de l'une des trois manières suivantes:

Achetez-en un auprès d'un fournisseur de certificats.

Recevez-en un d'un groupe de votre organisation responsable de la création de certificats numériques.

Générez votre propre certificat avec MakeCert.exe, qui est inclus avec le Kit de développement logiciel (SDK) Windows.


0 commentaires