Невозможно импортировать файл ключа «blah.pfx» - ошибка «Файл ключа может быть защищен паролем» - PullRequest
382 голосов
/ 12 мая 2010

Мы только что обновили наши проекты Visual Studio 2008 до Visual Studio 2010. Все наши сборки были подписаны с использованием Verisign сертификата для подписи кода. После обновления мы постоянно получаем следующую ошибку:

Невозможно импортировать следующий файл ключа: companyname.pfx. Файл ключа может быть защищен паролем. Чтобы исправить это, попробуйте снова импортировать сертификат или вручную установить сертификат в CSP со строгим именем со следующим именем контейнера ключей: VS_KEY_3E185446540E7F7A

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

  • Переустановка файла ключа из проводника Windows (щелкните правой кнопкой мыши файл PFX и выберите «Установить»)
  • При установке Visual Studio 2010 на новой машине в первый раз запрашивается пароль при первом открытии проекта, и затем он работает. На компьютерах, обновленных с Visual Studio 2008, эта опция недоступна.

Я пытался использовать утилиту SN.EXE (инструмент строгого имени), чтобы зарегистрировать ключ в CSP строгого имени, как следует из сообщения об ошибке, но всякий раз, когда я запускаю инструмент с любыми параметрами, используя В версии, поставляемой с Visual Studio 2010, SN.EXE просто перечисляет аргументы командной строки, а не делает что-либо. Это происходит независимо от того, какие аргументы я привожу.

Почему это происходит, и каковы ясные шаги, чтобы это исправить? Я собираюсь отказаться от ClickOnce установки и подписи кода Microsoft.

Ответы [ 22 ]

4 голосов
/ 21 мая 2010

Как первоначальный автор обхода сообщения об ошибке подключения, существует два варианта этого сообщения (я обнаружил позже)

Для одного варианта вы используете sn.exe (обычно, если вы используете строгие имена), чтобы импортировать ключ в хранилище сильных имен.

Другой вариант, для которого вы используете certmgr для импорта, это когда вы подписываете код для таких вещей, как одноразовое развертывание (обратите внимание, вы можете использовать один и тот же сертификат для обеих целей).

Надеюсь, это поможет.

3 голосов
/ 19 мая 2012

У меня ничего не получалось, но потом я пошел и заглянул в диспетчер сертификатов (mmc.exe). Сертификат не был импортирован в личный магазин, поэтому я импортировал его вручную, а затем проект скомпилирован.

См. Подпись манифеста ClickOnce и подпись сборки с использованием строгого имени с использованием страницы подписи Visual Studio Project Designer, Подписание сборок .

2 голосов
/ 12 января 2012

Моя проблема заключалась в том, что контроллер сборки TFS работал в качестве сетевой службы, и по какой-то причине я не понял, почему не использовались сертификаты службы Visual Studio Build Host. Я изменил удостоверение службы Visual Studio Build на нечто более управляемое, убедился, что у него есть права на сервере TFS, и вручную добавил сертификаты с помощью MMC.

Проблема также заключалась в том, что MSBuild не может добавить защищенные паролем сертификаты в хранилище.

2 голосов
/ 10 августа 2011

У меня была такая же проблема после переноса установки Windows на SSD . Ни одно из других решений не помогло мне.

Мое решение было открыть файл проекта в Блокнот и удалить все ссылки на ключи PFX. После сохранения файла откройте решение в Visual Studio. Зайдите в проект -> Свойства -> Подписание. Вы не должны видеть никаких ключей, перечисленных в поле со списком «выберите файл ключа строгого имени». В поле со списком перейдите к ключу, выберите его, и ваш проект теперь можно построить.

2 голосов
/ 23 декабря 2011

Повторный выбор файла ключа в поле со списком и ввод пароля помогает нам в этом.

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

1 голос
/ 15 апреля 2011

Хорошо, это сработало для меня. Откройте старое решение / проект от имени администратора в Visual Studio 2010 и откройте новое или скопированное решение / проект. Как администратор, удалите скопированный файл pfk в новом решении / проекте Visual Studio 2010, перейдите в свойства проекта и отмените выбор.

Открыв оба проекта, скопируйте пасту в новый. Зайдите в свойства проекта и выберите Build. Я открыл и закрыл Visual Studio, а также после удаления из нового проекта собрал его перед тем, как скопировать из старого проекта и выбрать его. Сначала я получил сообщение об ошибке в начале этого поста, когда скопировал проект и попытался его собрать.

1 голос
/ 29 апреля 2018

Это решило мою проблему: Откройте свой VS Project

Двойной щелчок на Package.appxmanifest

Перейти на вкладку "Упаковка"

нажмите, выберите сертификат

нажмите настроить сертификат

выберите из файла и используйте файл example.pfx, который создал это единство или что-либо еще

1 голос
/ 03 ноября 2014

В моем сценарии служба построения не использовала ту же учетную запись пользователя, с которой я импортировал ключ, используя sn.exe.

После смены учетной записи на мою учетную запись администратора все работает просто отлично.

1 голос
/ 24 ноября 2011

У меня была похожая проблема, но после выбора pfx в ComboBox «Файл ключа строгого имени» и ввода пароля я все еще получал похожую ошибку (без части имени контейнера):

Невозможно импортировать следующий файл ключа: companyname.pfx. Файл ключа может быть защищен паролем. Чтобы исправить это, попробуйте снова импортировать сертификат или вручную установить сертификат

Также не была заполнена информационная панель сертификата «Подписать ClickOnce».

Я сделал «Выбрать из файла ...» на моем pfx, и это решило проблему.

1 голос
/ 20 марта 2013

Все описанные здесь методы не помогли мне. Но когда я удалил файл * .pfx из своего проекта и снова добавил его в подпись сборки, я создал свой проект без каких-либо ошибок! Я не могу объяснить причины, почему. Но у меня это сработало.

...