7

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> 
+2

Эта ошибка упоминается специально [в документации] (https://msdn.microsoft.com/en-us/library/windows/desktop/jj835835%28v=vs.85%29.aspx). Вы забыли сообщить нам, что вы нашли в журнале приложений. –

+0

Ответ отредактирован, чтобы иметь журнал событий, но как ни странно (через пару часов от компьютера) подписание просто работало без меня, меняя что-либо, о чем я могу думать. Отбросить его до моей собственной ошибки пользователя или гремлинов. – dkackman

+4

У меня была такая же ошибка, и проблема была в имени эмитента сертификата. Значение '' в 'MakeCert.exe' должно соответствовать' Publisher = 'CN = "' in 'AppxManifest.xml' – crea7or

ответ

2

Как и ответ here (хотя для другого кода ошибки) - лет u должен удостовериться, что имя издателя (в файле AppxManifest.xml) совпадает с издателем сертификата.

Дополнительную информацию см. В разделе here (в нижнем разделе «Примечания»).

+0

Что это значит? Это просто CN = компания или весь предмет? Что должно точно соответствовать? Документы очень расплывчаты, и я не могу выполнить какую-либо комбинацию. –

+0

@RickStrahl от того, что я наблюдал, это должна быть целая строка, а не только CN = что-то. Если это вам пока не сработает, сообщите мне –