立入|ITブログ
【解決】SignFileタスクは、必要なパラメーター CertificateThumbprint に対して値を指定されていませんでした

IISにアプリケーションを発行する際の証明書エラー

IISへプログラムを発行しようとする際に「"SignFile"タスクは、必要なパラメーター"CertificateThumbprint"に対して値を指定されていませんでした」というエラーが出ました。

これは証明書に関するエラーです。

ClickOnceのアプリはWEB上に公開して実行してもらう事になるので、悪意のあるアプリケーションが実行されないよう、セキュリティを保つ情報が必要です。

「SignFileタスク」とはデプロイ時にアプリケーションに署名をする事で、「CertificateThumbprint」は概ね証明書に記載された値の事だと考えていいでしょう。

そのため対策としては、証明書を正しく発行するか、証明書を使用しないかのどちらかになってくるでしょう。

設定時に参照するメニュー

  1. Visual Studioでプロジェクトを開く
  2. ソリューションエクスプローラーのプロジェクトを右クリック
  3. プロパティを開く
  4. 「署名」を開く

証明書が読み取れない原因を調査する

上記のメニューから証明書の情報を確認できます。このエラーが出てきた時には、証明書欄の発行先や発行元が「なし」と表示されていると思います。

証明書から正しく情報を取得できていれば、証明書を発行した人や有効期限の情報が表示されます。

証明書から情報が取得できない原因はいくつか考えられますが、パスワードロックがかかっていたり、証明書の置き場へのアクセス権限がなかったりする場合が多いと思います。私の場合はVSSで関連するプログラムが他の人にチェックアウトされていた事が原因でした。

原因が分かった場合は、ファイルを修正すれば症状が改善されます。

証明書を新しく発行する

原因がわからない場合は、証明書を新しく発行する事もできます。こちらは「テスト証明書の作成」を実行する事で可能です。

「ClickOnceマニフェストに署名する」のチェックを外す

こちらでも解消しなければ、証明書を使わずに発行できるか試す事になります。

IISに公開するためのファイルを公開する場合、デフォルトで「ClickOnceマニフェストに署名する」という項目がONになっております。こちらのチェックを外すと、そもそもデジタル署名を行わないので、証明書が読み取れないというエラーは出なくなります。