Jsignを使用したLinuxでのMicrosoftAuthenticodeコード署名

サイン は、MicrosoftAuthenticodeコード署名用のオープンソースのプラットフォームに依存しないJavaツールです。 Jsignは、Maven、Gradle、Antなどのビルドシステムと簡単に統合できます。また、コマンドラインから直接使用することもできます。

このハウツーでは、使用について説明します サイン Linuxコマンドラインから OV / IVコード署名 & EVコード署名。 JsignはJavaベースであるため、WindowsおよびMacOSシステムでも使用できます。

Jsignをインストールします

まず、Jsignをダウンロードしてインストールする必要があります。 ザ・ Jsignのウェブサイト 最も人気のあるLinuxシステムに簡単にインストールするためのDebianおよびRPMパッケージへのリンクが含まれています。 .jar ファイルにソフトウェアを指定する必要があります。

OV / IVコード署名

このセクションは、1 年 2023 月 XNUMX 日より前に注文された個人検証 (IV) および組織検証 (OV) のコード署名証明書にのみ適用されます。 1年2023月XNUMX日より, SSL.com の IV および OV コード署名証明書は、連邦情報処理規格 140-2 (FIPS 140-2) USB トークンまたは eSigner クラウド コード署名サービスを通じて発行され始めました。 

OV/IV コード署名の場合、Java キーストアまたは PKCS#12 (PFX) ファイルに保存されている証明書を使用できます。 以下のすべてのコード例で、すべて大文字で示されている値を実際の値に置き換えてください。

  1. まず、 keytool 取得するコマンド alias 署名時に使用する値:
    keytool -list -v -keystore PKCS12-FILE.p12 -storetype PKCS12 -storepass PKCS12-PASSWORD
  2. あなたの出力を確認してください keytool で始まる行のコマンド Alias name:.
    キーストアタイプ:PKCS12キーストアプロバイダー:SUNキーストアに1つのエントリが含まれていますエイリアス名:1作成日:18年2021月4日エントリタイプ:PrivateKeyEntry証明書チェーンの長さ:XNUMX .. ..

    上記の例では、 Alias name is 1.

  3. 次のようなコマンドを使用して、ファイルに署名し、タイムスタンプを付けます。
    • jsign システム全体にインストールされたコマンド:
      jsign --keystore KEYSTORE.p12 --alias エイリアス名 --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
    • Jsignerと .jar ファイル:
      java -jar jsign-3.1.jar --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-符号
  4. コマンドが成功すると、次のような出力が表示されます。
    example.exeにAuthenticode署名を追加する
注: デフォルトでは、SSL.com は ECDSA キーからのタイムスタンプをサポートしています。

このエラーが発生した場合: The timestamp certificate does not meet a minimum public key length requirement、ソフトウェア ベンダーに連絡して、ECDSA キーからのタイムスタンプを許可する必要があります。

ソフトウェア ベンダーが通常のエンドポイントの使用を許可する方法がない場合は、このレガシー エンドポイントを使用できます。 http://ts.ssl.com/legacy RSA タイムスタンプ ユニットからタイムスタンプを取得します。

EVコード署名

JsignをEVコード署名証明書と一緒に使用することもできます。 ここでの例ではSSL.comを使用しています EVコード署名証明書 にインストールされています FIPS140-2検証済みセキュリティキーUSBトークン.

  1. まず、 OpenSC はシステムにインストールされているため、PKCS#11APIを介してトークンと通信できます。 UbuntuのようなDebianベースのディストリビューションでは、OpenSCをインストールできます。 apt:
    sudo apt install opensc
  2. 次に、構成ファイルを作成します。 ファイルの名前は任意ですが、以下のコマンド例では使用します eToken.cfg。 へのパスに注意してください opensc-pkcs11.so OpenSCのインストールによって異なる場合があるため、構成ファイルを作成する前に確認してください。
    名前= OpenSC-PKCS11説明= OpenSCライブラリ経由のSunPKCS11 = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
  3. keytool 取得するコマンド alias 署名時に使用する値:
    keytool -list -v -keystore NONE -storetype PKCS11 -storepass TOKEN-PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
  4. あなたの出力を確認してください keytool で始まる行のコマンド Alias name:。 トークンに複数の証明書が含まれている場合は、出力の有効日と発行者を証明書と照合してください。 SSL.comからYubiKeyで発行されたEVコード署名証明書には、次のエイリアス名が必要であることに注意してください。 Certificate for PIV Authentication.
    エイリアス名:PIV認証用の証明書エントリタイプ:PrivateKeyEntry証明書チェーンの長さ:1証明書[1]:所有者:OID.1.3.6.1.4.1.311.60.2.1.3 = US、OID.1.3.6.1.4.1.311.60.2.1.2 .2.5.4.15 =ネバダ、OID.20081614243 =民間組織、CN = SSL Corp、SERIALNUMBER = NV2、O = SSL Corp、L = Houston、ST = TX、C = US発行者:CN = SSL.comEVコード署名中間CA RSA R7299、O = SSL Corp、L = Houston、ST = Texas、C = USシリアル番号:93f57a3bac6570c781580f63172e17有効期限:Fri Apr 12 46:04:2020 EDT 17からSat Apr 12 46:04:2021 EDT XNUMX
  5. 次のようなコマンドを使用して、ファイルに署名し、タイムスタンプを付けます。
    • jsign システム全体にインストールされたコマンド:
      jsign --keystore eToken.cfg --alias "Certificate for PIV Authentication" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
    • Jsignerと .jar ファイル:
      java -jar jsign-3.1.jar --keystore eToken.cfg --alias "Certificate for PIV Authentication" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmodeRFC3161ファイル-署名する
  6. コマンドが成功すると、次のような出力が表示されます。
    example.exeにAuthenticode署名を追加する
注: デフォルトでは、SSL.com は ECDSA キーからのタイムスタンプをサポートしています。

このエラーが発生した場合: The timestamp certificate does not meet a minimum public key length requirement、ソフトウェア ベンダーに連絡して、ECDSA キーからのタイムスタンプを許可する必要があります。

ソフトウェア ベンダーが通常のエンドポイントの使用を許可する方法がない場合は、このレガシー エンドポイントを使用できます。 http://ts.ssl.com/legacy RSA タイムスタンプ ユニットからタイムスタンプを取得します。

デジタル署名を確認する

  1. Windowsで署名の詳細を表示することにより、デジタル署名が有効であることを確認できます。
    デジタル署名は大丈夫です
  2. 使用することもできます サインツール Windowsでデジタル署名を確認します。
    signtool.exe verify / pa'C:\ Users \ Aaron Russell \ Desktop \ example.exe 'ファイル:C:\ Users \ Aaron Russell \ Desktop \ example.exeインデックスアルゴリズムのタイムスタンプ=========== ============================= 0 sha256 RFC3161正常に検証されました:C:\ Users \ Aaron Russell \ Desktop \ example.exe

SSL.com のニュースレターを購読する

SSL.comからの新しい記事と更新をお見逃しなく

常に最新情報を入手して安全を確保

SSL.com サイバーセキュリティの世界的リーダーであり、 PKI そしてデジタル証明書。サインアップして、最新の業界ニュース、ヒント、製品のお知らせを受け取ります。 SSL.com.

フィードバックをお待ちしております

アンケートにご協力いただき、最近のご購入についてのご意見をお聞かせください。