Невозможно подписать файл XAP - PullRequest
1 голос
/ 28 сентября 2010

Я пытаюсь подписать приложение Silverlight 4 OOB (файл XAP).
Я использую следующую команду:

"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\signtool.exe" sign /v /f path\to\FILENAME.pfx /p PWD path\to\FILENAME.xap

и я получаю ответ:

The following certificate was selected:
    Issued to: COMPANY NAME
    Issued by: Thawte Code Signing CA
    Expires:   Wed Dec 01 00:59:59 2010
    SHA1 hash: AE57AF01180BF995C7C5B01E235F296CCF611111

Done Adding Additional Store
Successfully signed: FILENAME.xap

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

Но файл XAP не подписан.
Если я просматриваю свойства в проводнике, в списке нет цифровых подписей. И если я пытаюсь установить его, я получаю непроверенный диалог.
Если я использую точно такую ​​же команду, но для dll-файла, подпись работает нормально, и я вижу цифровую подпись, примененную к файлу.

Что может быть причиной этого?
Нужна ли другая версия signtool.exe?

Если это имеет значение, PFX изначально был экспортирован с компьютера с XP, и я пытаюсь запустить его на компьютере с Win7 (для dev) и на сервере Win2008 (на сборочном компьютере) и получить одинаковое поведение на обоих.

Edit:
Если я проверяю сертификат подписанной DLL, я получаю следующее:

SignTool Error: A certificate chain processed, but terminated in a root 
        certificate which is not trusted by the trust provider.

Похоже, мне нужно установить некоторые корневые сертификаты.

Однако я не уверен, что это объясняет, почему файл XAP не сообщает о добавлении какого-либо сертификата.

1 Ответ

3 голосов
/ 29 сентября 2010

Вы пытались подписать приложение через вкладку «Подписание» в свойствах проекта проекта Silverlight?Если свойства вашего проекта похожи на мои, то на самом деле там могут быть две вкладки для подписи (одна для строгого именования сборки) - вторая, вероятно, будет той, которую вы хотите.Вот ссылка, объясняющая шаги по подписанию XAP: http://blogs.infosupport.com/blogs/alexb/archive/2010/05/10/silverlight-4-digitally-signing-a-xap.aspx. Проверьте, поможет ли это решить проблему.

Также помните, что простой подписи XAP недостаточно - вам необходимо импортировать сертификат в хранилище доверенных корней (что, похоже, не так, как вы).Нажмите кнопку Подробнее ... на вкладке Подписи.Вероятно, будет указано, что этот корневой сертификат CA не является доверенным.Выполните следующие действия:

  • Нажмите кнопку Установить сертификат в этом диалоговом окне
  • Нажмите кнопку Поместить все сертификаты в следующем хранилище и нажмите кнопку Обзор ...
  • Выберите элемент Доверенные корневые центры сертификации в дереве
  • Нажмите OK.

Появится другое диалоговое окно, в котором будет указано, что оно установлено.Теперь перекомпилируйте ваше приложение, и оно должно работать нормально.

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

Крис

...