私の質問はこれに関連しています。悲しいかな、その質問は別のCA(Symantec)に関するものであり、(Safenetからの)別のハードウェアトークンを使用しています私は提供されましたが、HKLM\SYSTEM\CurrentControlSet\Control\Cryptography\Providers
)の下で独自のプロバイダーを登録していないようです。
certum.plのオープンソースコード署名証明書を使用しています。signtool.exe
Windows SDKのを使用していますが10.0.18362.0
、次のエラーが(とともにsigntool sign /v /debug
)表示されます。
signtool.exe sign /v /debug /a /i Certum /ph /du "https://my.url" /d "short description" /fd sha256 /tr "http://timestamp.digicert.com" /td sha256 "mysoftware.exe"
The following certificates were considered:
Issued to: Open Source Developer, ...
Issued by: Certum Code Signing CA SHA2
Expires: ...
SHA1 hash: ...
Issued to: Open Source Developer, ...
Issued by: Certum Code Signing CA SHA2
Expires: ...
SHA1 hash: ...
After EKU filter, 2 certs were left.
After expiry filter, 1 certs were left.
After Issuer Name filter, 1 certs were left.
After Private Key filter, 1 certs were left.
The following certificate was selected:
Issued to: Open Source Developer, ...
Issued by: Certum Code Signing CA SHA2
Expires: ...
SHA1 hash: ...
Done Adding Additional Store
Error information: "Error: SignerSign() failed." (-1073741275/0xc0000225)
SignTool Error: An unexpected internal error has occurred.
エラーコード0xC0000225
は次のとおりNTSTATUS
です。
//
// MessageId: STATUS_NOT_FOUND
//
// MessageText:
//
// The object was not found.
//
#define STATUS_NOT_FOUND ((NTSTATUS)0xC0000225L)
...完璧な理にかなって、与えられたHRESULT
ことにより、使用されるようにコードをsigntool.exe
1:基礎となるインフラマップ1 NTSTATUS
(もちろん場合は、施設コードが与えられ、HRESULT
コードが存在するには名前がありませんntstatus.h
...私が意味するのレイアウトであるHRESULT
とNTSTATUS
)。
悲しいかな、多くのことはいつでも見つからないかもしれないので、これは私に何も教えてくれません...この執筆の時点で私はまだProcMonを使って自分でそれを絞り込もうとしています。失敗した試みの場合、NAME NOT FOUND
ProcMonで592 結果が表示されます。これは上記のNTSTATUS
コードに対応しているはずです。それらのほとんどは、レジストリキーと値用です。
signtool
もう一度、完全なコマンドラインを示します。
"C:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ 10.0.18362.0 \ x64 \ signtool.exe" sign / v / debug / a / i Certum / ph / du " https://my.url " / d "短い説明" / fd sha256 / tr " http://timestamp.digicert.com " / td sha256 "mysoftware.exe"
...はい、実際にそれを使用していることを確認しましたsigntool.exe
...実際、フルパスでx86とx64を試してみました(実際のスクリプトは複雑さの一部をラップPATH
し、呼び出すことができるように調整するための環境を準備していますsigntool.exe
フルパスなし)。
奇妙なことに、SHA1ダイジェストを使用して署名すると、次のように機能します。
"C:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ 10.0.18362.0 \ x64 \ signtool.exe" sign / v / debug / a / i Certum / ph / du " https://my.url " / d "短い説明" / t " http://timestamp.digicert.com " "mysoftware.exe"
(違いは、欠落/fd sha256
し/td sha256
ていることと、タイムスタンプサービスURLの/t
代わりに/tr
、つまり異なるプロトコルです)
proCertum CardManagerソフトウェアのバージョンは3.2.0.156で、詳細は次のスクリーンショットのとおりです。
(これは、この記事の執筆時点でCertumのWebサイトから入手できる最新バージョンです。)
その間、次のsigntool.exe
(それぞれx86と64)も試してみました:
- Windows 8.1 SDK
- Windows 10.0.17763.0 SDK
...同じ結果であり、これを解決する方法について私は困惑しています。