EDITОшибка Signtool: Ошибка SignerSign(). " (-2147024885/0x8007000b)
ошибка журнала событий была такова:
error 0x8007000B: The app manifest publisher name (CN=...)
must match the subject name of the signing certificate
(CN={19BE29DF-4812-4F2E-8FC1-A138B146946A}).
ниже команда теперь, кажется, работает. Таким образом, пользовательская ошибка с моей стороны, которую я не могу идентифицировать или что-то неловкое с состоянием машины, когда я это видел. Это руководство, связанное с сертификатом подписи в сообщении журнала событий, не является тем, что показывает сертификат в оснастке диспетчера сертификатов, что является странным.
Оригинал Вопрос
Я пытаюсь подписать пакет UWP appx, который был создан с использованием MakeAppx.exe
. Pfx является сертификатом подписи кода разработчика, сгенерированным этими командами от https://msdn.microsoft.com/windows/uwp/porting/desktop-to-uwp-manual-conversion.
C:\> MakeCert.exe -r -h 0 -n "CN=<publisher_name>" -eku 1.3.6.1.5.5.7.3.3 -pe -sv <my.pvk> <my.cer>
C:\> pvk2pfx.exe -pvk <my.pvk> -spc <my.cer> -pfx <my.pfx>
Секретный ключ находится в моем доверенном корневом CERT магазине и работал, когда я сгенерировал appx из инсталлятора с помощью Desktop App Converter.
командной строки я использую:
signtool.exe sign -f <path to my pfx file> -fd SHA256 -v .\FishTank.appx
но SignTool
является erroring с этим:
The following certificate was selected:
Issued to: ...
Issued by: ...
Expires: Sat Dec 31 18:59:59 2039
SHA1 hash: ...
Done Adding Additional Store
Error information: "Error: SignerSign() failed." (-2147024885/0x8007000b)
Издатель сертификата соответствует тому, что находится в appmanifest.xml
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
<Identity Name="..."
ProcessorArchitecture="x64"
Publisher="CN=..."
Version="1.1.0.0" />
<Properties>
<DisplayName>Fish Tank</DisplayName>
<PublisherDisplayName>Reserved</PublisherDisplayName>
<Description>Some fish. Swimming around on your screen.</Description>
<Logo>StoreLogo.png</Logo>
</Properties>
<Resources>
<Resource Language="en-us" />
</Resources>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.14316.0" />
</Dependencies>
<Capabilities>
<rescap:Capability Name="runFullTrust"/>
</Capabilities>
<Applications>
<Application Id="FishTank" Executable="FishTank.exe" EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements
BackgroundColor="#464646"
DisplayName="Fish Tank"
Square150x150Logo="Square150x150Logo.png"
Square44x44Logo="Square44x44Logo.png"
Description="Some fish. Swimming around on your screen." />
</Application>
</Applications>
</Package>
Эта ошибка упоминается специально [в документации] (https://msdn.microsoft.com/en-us/library/windows/desktop/jj835835%28v=vs.85%29.aspx). Вы забыли сообщить нам, что вы нашли в журнале приложений. –
Ответ отредактирован, чтобы иметь журнал событий, но как ни странно (через пару часов от компьютера) подписание просто работало без меня, меняя что-либо, о чем я могу думать. Отбросить его до моей собственной ошибки пользователя или гремлинов. – dkackman
У меня была такая же ошибка, и проблема была в имени эмитента сертификата. Значение '' в 'MakeCert.exe' должно соответствовать' Publisher = 'CN = "' in 'AppxManifest.xml' –
crea7or