web-dev-qa-db-ja.com

UWP appxパッケージ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}).

以下のコマンドは機能しているようです。ですから、私が識別できない私の側のユーザーエラーか、これを見たときのマシンの状態に何かひねくれたものがあります。イベントログメッセージの署名証明書に関連付けられているGUIDは、証明書が証明書マネージャースナップインに表示するものではありません。これは奇妙なことです。

元の質問

MakeAppx.exeを使用して生成されたUWPappxパッケージに署名しようとしています。 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>

秘密鍵は信頼できるルート証明書ストアにあり、 デスクトップアプリコンバーター を使用してインストーラーからappxを生成したときに機能しました。

私が使用しているコマンドラインは次のとおりです。

signtool.exe sign -f <path to my pfx file> -fd SHA256 -v .\FishTank.appx

しかし、SignToolはこれでエラーになっています:

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>
11
dkackman

答えたように ここ (ただしエラーコードは異なります)-発行者名(AppxManifest.xmlファイル内)が証明書の発行者と同じであることを確認する必要があります。

詳細については、 ここ (下部の「備考」セクション)を参照してください。

8
Yoav Feuerstein

MakeCert/n引数は、xmlからの完全なPublisher文字列である必要があります。

0
M1SMR