サイン は、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) ファイルに保存されている証明書を使用できます。 以下のすべてのコード例で、すべて大文字で示されている値を実際の値に置き換えてください。
- まず、
keytool
取得するコマンドalias
署名時に使用する値:keytool -list -v -keystore PKCS12-FILE.p12 -storetype PKCS12 -storepass PKCS12-PASSWORD
- あなたの出力を確認してください
keytool
で始まる行のコマンドAlias name:
.キーストアタイプ:PKCS12キーストアプロバイダー:SUNキーストアに1つのエントリが含まれていますエイリアス名:1作成日:18年2021月4日エントリタイプ:PrivateKeyEntry証明書チェーンの長さ:XNUMX .. ..
上記の例では、
Alias name
is1
. - 次のようなコマンドを使用して、ファイルに署名し、タイムスタンプを付けます。
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-符号
- コマンドが成功すると、次のような出力が表示されます。
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トークン.
- まず、 OpenSC はシステムにインストールされているため、PKCS#11APIを介してトークンと通信できます。 UbuntuのようなDebianベースのディストリビューションでは、OpenSCをインストールできます。
apt
:sudo apt install opensc
- 次に、構成ファイルを作成します。 ファイルの名前は任意ですが、以下のコマンド例では使用します
eToken.cfg
。 へのパスに注意してくださいopensc-pkcs11.so
OpenSCのインストールによって異なる場合があるため、構成ファイルを作成する前に確認してください。名前= OpenSC-PKCS11説明= OpenSCライブラリ経由のSunPKCS11 = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
-
keytool
取得するコマンドalias
署名時に使用する値:keytool -list -v -keystore NONE -storetype PKCS11 -storepass TOKEN-PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
- あなたの出力を確認してください
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
- 次のようなコマンドを使用して、ファイルに署名し、タイムスタンプを付けます。
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ファイル-署名する
- コマンドが成功すると、次のような出力が表示されます。
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 タイムスタンプ ユニットからタイムスタンプを取得します。デジタル署名を確認する
- Windowsで署名の詳細を表示することにより、デジタル署名が有効であることを確認できます。
- 使用することもできます サインツール 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