Windows SDKでファイルを自己署名する
fuji44
要するに、Windows 10 SDKの SignTool
で
PFX形式の証明書を使ってファイルで署名すればOK。
SignTool sign /fd SHA256 /a /f sample.pfx /p passpass target_file
詳細
事前に、 Windows 10 SDK の Windows SDK Signing Tools for Desktop Apps
をインストールしておく。
バージョンによる違いがあるが、 SignTool
のパスは以下。
C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64
PFX形式の自己証明書を作成する
証明書がない場合は、自己証明書を作成する。 既に公開鍵と秘密鍵を持っている場合はpfxファイルに変換できる。
$cert = New-SelfSignedCertificate -Type Custom -Subject "CN=fuji44 Software, O=Team fuji44, C=JP" -KeyUsage DigitalSignature -FriendlyName "fuji44" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")
ちなみに、作成した証明書はdirコマンドで確認できます。
dir Cert:\CurrentUser\My\
自己証明書をexport
$password = ConvertTo-SecureString -String passpass -Force -AsPlainText
Export-PfxCertificate -cert $cert -FilePath $HOME\fuji44.pfx -Password $password
ファイルを署名する
証明書を使ってファイルを署名
SignTool sign /fd SHA256 /a /f fuji44.pfx /p passpass secdrv.sys
参考
- https://docs.microsoft.com/ja-jp/dotnet/framework/tools/signtool-exe
- https://knowledge.digicert.com/ja/jp/solution/SO23603.html
- https://ysklog.net/pc/4277.html
- https://goodbyegangster.hatenablog.com/entry/2019/10/09/231611
- https://qiita.com/kunichiko/items/12cbccaadcbf41c72735
- https://qiita.com/sat0tabe/items/e6b0a2913eb2cbddb4fd