Развернуть надстройку VSTO без подписи сертификата? - PullRequest
0 голосов
/ 14 июля 2020

Я впервые пытаюсь развернуть надстройку VSTO в системе пользователя, и я сталкиваюсь с барьером безопасности. Надстройка была создана в Visual Studio 2019 Community Edition и предназначена для интеграции с Microsoft Excel. Пользователь запускает Office 365.

При запуске Setup.exe пользователь получает запрос на первоначальное подтверждение и нажимает «Установить». На короткое время появляется индикатор выполнения, который проходит примерно 25% пути, затем появляется сообщение об ошибке: «Настроенные функции в этом приложении не будут работать, потому что сертификат, используемый для подписи манифеста развертывания для [надстройки], или его местоположение не доверяет. "

Я понимаю, что Microsoft хотела бы, чтобы я заплатил за сертификат подписи, но я надеюсь, что это заработает, избегая при этом расходов.

В этой статье Microsoft описывается использование цифрового сертификата в качестве «необязательного шага»: ClickOnce и Authenticode . В этой статье говорится, что альтернативный путь для пользователя - щелкнуть «запрос доверия ClickOnce» во время установки: Предоставить доверие решениям Office . Но, насколько я понимаю, процесс останавливается еще до того, как дойдет до запроса доверия ClickOnce, поэтому пользователь никогда не получит эту опцию.

Для сравнения: пользователь запустил установку в более старой системе. В этой системе он получил приглашение ClickOnce, одобрил программное обеспечение, и установка прошла успешно до конца. Это очень убедительно указывает на то, что проблема в новой системе связана с настройками безопасности.

Я проинструктировал пользователя открыть Excel и go в Параметры> Центр управления безопасностью> Параметры центра управления безопасностью> Надстройки и удалите флажок отметьте «Требовать, чтобы надстройки приложения были подписаны доверенным издателем». Сначала не было галочки, поэтому проблема не в этом.

Я проинструктировал пользователя go в командной строке и очистить все остатки неудачной установки с помощью rundll32 dfshim CleanOnlineAppCache перед каждая новая попытка установки.

Я не знаю, где искать дальше. Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

1 голос
/ 14 июля 2020

Один относительно простой обходной путь: вы упаковываете папку «publi sh» в виде ZIP-файла, отключаете любые онлайн-проверки или развертывания (в настройках проекта выберите для публикации sh локально, а не на веб-сайт. Установка с сайт или автообновление без нормального сертификата работать не будут). Затем дайте вашему пользователю этот ZIP-архив. Пользователь загружает этот ZIP-файл, затем щелкните его правой кнопкой мыши и проверяет «Разблокировать» . Потом распаковывает и устанавливает нормально. Теперь подойдет любой сертификат. Это применимо, если ваш пользователь загружает ваш файл из inte rnet.

Итак, идея очень проста: просто попросите вашего пользователя установить флажок «Разблокировать» перед извлечением файлов из отправленного вами ZIP-архива и запуском. их.

enter image description here

Another solution, you simply tell the user's system to trust your "self-signed" developer's certificate (add your certificate to "Trusted Publishers" store on the user computer). For that you need admin rights. Please note that user's admins probably won't like this idea, unless you and your user work in the same organization. Here are the instructions: https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate

Самым лучшим и простым, конечно, было бы, если бы вы купили обычный сертификат подписи кода. Они не такие уж и дорогие, вы можете получить его в COMODO (Secti Go), например, примерно за 70 долларов в год через их реселлеров.

0 голосов
/ 20 июля 2020

Что требуется для процесса сертификации, это быстрый процесс? Сертифицируют ли они меня / мой бизнес или код ??

Это быстрый процесс:

Подпишите действующий сертификат при публикации.

Добавьте издателя в Надежный издатель перед установкой, если у параметров макроса высокий уровень безопасности.

Fini sh установка.

Вы можете получить сертификат для подписи кода одним из трех способов:

Купите один у поставщика сертификатов.

Получите один от группы в вашей организации, ответственной за создание цифровых сертификатов.

Создайте свой собственный сертификат с помощью MakeCert.exe, который входит в состав Windows Комплект разработчика программного обеспечения (SDK).

0 голосов
/ 14 июля 2020

На целевой машине. вам необходимо установить сертификат, используемый для подписи надстройки, и доверять ему (см. вкладку «Подписание» параметров вашего проекта)

...