1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Electron Forge/Builder でUSBトークンを使用したコード署名を行う

Last updated at Posted at 2024-01-31

Electron でWindowsへのコード署名をCI/CDで行うことはもはや無理っぽい の続きです。心を無にしてローカルからbuild&publishできるように設定を行いました。

下準備

まず単純に署名ができるか試します。USBトークンを挿し、継続ログオンを有効にした状態で、developer powershellなどから署名します。{タイムスタンプサーバー}には代理店から指定されたURL、{発行先(Issued to)}は証明書のIssued to文字列を入れます。

signtool.exe sign /tr {タイムスタンプサーバー} /fd sha256 /td sha256 /n "{発行先(Issued to)} test.exe

無事完了したらファイルを右クリック→プロパティで、デジタル署名のタブを確認し、正しく署名出来ているかを確認します。

Electron Forge

オフィシャルドキュメント

forge.config.js で、maker-squirrelのconfigに以下を追加します。
いままで certificateFile, certificatePasswordを設定していた場合はクリアしておきます。

forge.config.js
{
  name: '@electron-forge/maker-squirrel',
  config: (arch) => ({
    signWithParams: '/tr {タイムスタンプサーバー} /fd sha256 /td sha256 /n "{発行先(Issued to)}"',
  })
},

この結果、signtool.exe sign /tr {タイムスタンプサーバー} /fd sha256 /td sha256 /n "{発行先(Issued to)} インストーラー.exe のような感じで署名が走ります。

electron-builder

オフィシャルドキュメント

win.certificateSubjectName を追加します。ちなみに証明書の検索は前方一致になっているっぽいので、完全に一致していなくても引っ張ってこれます。
いままでCSC_LINK、CSC_KEY_PASSWORDなどを環境変数でセットしていた場合はクリアしておきます。

package.json
"win": {
  "target": "nsis",
  "certificateSubjectName": "組織名"
}

独り言

今まではOVとEVで価格差が大きかったのでOVを使っていたのですが、HSM対応で軒並み値上げされて価格差が無くなったのとCICDはどちらでも使えなくなってしまったので、会社で使うならEV一択ですね、、。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?