KodeTandaAlat adalah utilitas baris perintah Java multi-platform yang aman dan berorientasi privasi untuk menandatangani Microsoft Authenticode dan objek kode Java dari jarak jauh dengan penandatangan elektronik Sertifikat penandatanganan kode EV. Hash dari file dikirim ke SSL.com untuk penandatanganan sehingga kode itu sendiri tidak terkirim. Ini sangat ideal di mana file sensitif perlu ditandatangani, tetapi tidak boleh dikirim melalui kabel untuk ditandatangani. CodeSignTool juga ideal untuk proses batch otomatis untuk penandatanganan volume tinggi atau integrasi ke dalam alur kerja pipeline CI/CD yang ada.
Untuk mengetahui semua jenis file yang dapat ditandatangani oleh CodeSignTool, silakan merujuk ke artikel ini: Jenis File yang Didukung eSigner
Untuk petunjuk tentang cara otomatisasi Penandatanganan Kode EV menggunakan signtool.exe atau certutil.exe tolong tinjau ini bagaimana caranya.
Jika Anda ingin menggunakan esigner untuk menandatangani dokumen, silakan lihat panduan DocSignTool ini.
Instalasi CodeSignTool
Untuk menginstal versi CodeSignTool saat ini, cukup unduh dan unzip file yang benar untuk OS Anda:
Perhatikan bahwa unduhan Windows menyertakan runtime Java, tetapi versi Linux/macOS memerlukan runtime Java untuk diinstal di komputer Anda. Versi Windows dari perintah adalah file batch (CodeSignTool.bat
) dan versi Linux / macOS adalah skrip shell (CodeSignTool.sh
).
Ringkasan Penggunaan CodeSignTool
Pemakaian: CodeSignTool [-hV] [COMMAND] [PARAMETERS]
Pilihan:
-h
,--help
: Menampilkan pesan bantuan dan keluar.-V
,--version
: Menampilkan informasi versi dan keluar.
Perintah:
get_credential_ids
: Menampilkan daftar ID kredensial eSigner yang terkait dengan pengguna tertentu.credential_info
: Kunci keluaran dan informasi sertifikat yang terkait dengan ID kredensial.sign
: Objek kode tanda dan cap waktu.batch_sign
: Tanda tangani dan stempel waktu beberapa objek kode dengan satu OTP.hash
: Pra-komputasi hash untuk digunakan nanti denganbatch_hash_sign
perintah.batch_sign_hash
: Tanda tangani hash yang telah dihitung sebelumnya denganhash
perintah.
Parameter:
-access_token=<TOKEN>
: OAuth token akses.-credential_id=<CREDENTIAL_ID>
: ID Kredensial untuk menandatangani sertifikat.-input_dir_path=<PATH>
: Masukkan direktori untuk objek kode yang akan ditandatangani, hash dihitung, atau pilih file yang tidak ditandatangani dan hash yang sesuai untuk ditandatangani.-input_file_path=<PATH>
: Jalur objek kode yang akan ditandatangani.-otp=<OTP>
: Nilai OTP OAuth dari aplikasi autentikasi.-output_dir_path=<PATH>
: Direktori tempat objek kode yang ditandatangani akan ditulis.-password=<PASSWORD>
: kata sandi akun SSL.com.-program_name=<PROGRAM_NAME>
: Nama program (hanya untuk penginstal MSI).-totp_secret=<TOTP_SECRET>
: OAuth Rahasia TOTP-username=<USERNAME>
: nama pengguna akun SSL.com-override="true"
: Menimpa file yang ditandatangani
-password="P!@^^ssword12"
).Perintah CodeSignTool
get_credential_id
Keluarkan daftar ID kredensial eSigner yang terkait dengan pengguna tertentu. Parameter -username
dan -password
diperlukan.
Pemakaian: CodeSignTool [-hV] get_credential_ids -username=<USERNAME> -password=<PASSWORD>
Contoh:
CodeSignTool get_credential_ids -username=john.doe@example.com -password="P0z9@lxo41" Credential ID(s): - fe537ace-e132-52a9-c2e7-egcd2ac3f1e6
Memasuki CodeSignTool get_credential_ids
tanpa parameter yang diperlukan akan menampilkan informasi penggunaan untuk perintah tersebut.
kredensial_info
Kunci keluaran dan informasi sertifikat yang terkait dengan ID kredensial. Parameter -credential_id
, -username
, dan -password
diperlukan.
Pemakaian: CodeSignTool [-hV] credential_info -credential_id=<CREDENTIAL_ID> -username=<USERNAME> -password=<PASSWORD>
Contoh:
CodeSignTool credential_info -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" Informasi Subjek Sertifikat EVCS: - DN Subjek: OID.1.3.6.1.4.1.311.60.2.1.3 .1.3.6.1.4.1.311.60.2.1.2=AS, OID.2.5.4.15=Nevada, OID.20081614243=Organisasi Swasta, CN=SSL Corp, SERIALNUMBER=NV26, O=SSL Corp, L=Houston, ST=Texas, C=US - Kedaluwarsa Sertifikat: Sen 21 Feb 21:37:2024 EST 3 - DN Penerbit: CN=SSL.com EV Penandatanganan Kode Intermediate CA RSA RXNUMX, O=SSL Corp, L=Houston, ST=Texas , C=US
Memasuki CodeSignTool credential_info
tanpa parameter yang diperlukan akan menampilkan informasi penggunaan untuk perintah tersebut.
pindaian_kode
Mengaktifkan pemindaian malware sebelum penandatanganan. Ini memindai file Anda untuk mencari kemungkinan malware untuk menghindari kompromi kode dan mencegah penandatanganan kode jika malware terdeteksi.
Pemakaian: CodeSignTool scan_code [-hV] -credential_id=<credentialId> -input_file_path=<inputFilePath> -password=<password> [-program_name=<programName>] -username=<username>
Untuk informasi lebih rinci tentang manfaat keamanan layanan Pemindaian Malware SSL.com, Anda dapat mengunjungi halaman khusus.
menandatangani
Tanda tangani dan objek kode stempel waktu. Parameter -username
, -password
, dan -input_file_path
diperlukan. -credential_id
hanya diperlukan untuk pengguna dengan lebih dari satu sertifikat penandatanganan kode eSigner. -output_dir_path
, -program_name
, dan -totp_secret
bersifat opsional.
Pemakaian: CodeSignTool sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_file_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]
Parameter opsional:
- If
-credential_id
dihilangkan dan pengguna hanya memiliki satu sertifikat penandatanganan kode eSigner, CodeSignTool akan menjadi default untuk itu. Jika pengguna memiliki lebih dari satu sertifikat penandatanganan kode, parameter ini wajib diisi. - If
-output_dir_path
dihilangkan, file ditentukan dalam-input_file_path
akan ditimpa dengan file yang ditandatangani. CodeSignTool akan meminta pengguna sebelum menimpa file. - If
-program_name
hadir saat menandatangani penginstal MSI, nilainya akan ditampilkan di dialog konfirmasi sebagai nama program. - If
-totp_secret
saat ini, CodeSignTool akan menghitung OTP berbasis waktu untuk penandatanganan, memungkinkan penggunaan alat secara otomatis. Jika parameter ini tidak ada, pengguna akan diminta memasukkan OTP manual.
contoh:
Entri OTP Manual:
CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -output_dir_path=ditandatangani -input_file_path=test.exe Masukkan OTP - Tekan enter untuk melanjutkan : 884646 Kode berhasil ditandatangani: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe
Pembuatan OTP Otomatis:
CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -totp_secret=ii5gVvZ9G+WkxB3FauAnoL/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= -output_dir_path=signed -input_file_path=test.exe Code signed successfully: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe
Memasuki CodeSignTool sign
tanpa parameter yang diperlukan akan menampilkan informasi penggunaan untuk perintah tersebut.
Error: invalid otp
ketika mencoba untuk menandatangani file, itu bisa disebabkan oleh satu atau beberapa masalah berikut:
- Kode QR yang Anda pindai ke dalam aplikasi otentikasi Anda tidak cocok dengan nama pengguna, kata sandi, dan / atau ID kredensial dari perintah Anda. Ini bisa terjadi jika:
- Anda memiliki beberapa akun yang dikonfigurasi untuk 2FA di perangkat Anda dan memilih yang salah.
- Anda mencoba menggunakan kredensial login Anda untuk a sertifikat bersama, tetapi memindai kode QR yang dibagikan oleh rekan satu tim dari akun mereka.
- OTP yang Anda masukkan sudah kedaluwarsa.
- Perintah Anda menyertakan rahasia TOTP yang tidak valid.
tanda_batch
Masuk dan stempel waktu hingga 100 file kode dengan satu OTP. Parameter -username
, -password
, dan -input_dir_path
diperlukan. -credential_id
hanya diperlukan untuk pengguna dengan lebih dari satu sertifikat penandatanganan kode eSigner. -output_dir_path
, -program_name
, dan -totp_secret
bersifat opsional.
Pemakaian: CodeSignTool [-hV] batch_sign [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_dir_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]
Jika pengguna ingin melakukan pemeriksaan batch sign dengan malware, setiap objek kode dalam batch harus dipindai terlebih dahulu dengan scan_code
perintah dan kemudian setelahnya, itu batch_sign
perintah dapat dijalankan.
Parameter opsional:
- If
-credential_id
dihilangkan dan pengguna hanya memiliki satu sertifikat penandatanganan kode eSigner, CodeSignTool akan menjadi default untuk itu. Jika pengguna memiliki lebih dari satu sertifikat penandatanganan kode, parameter ini wajib diisi. - If
-output_dir_path
dihilangkan, file yang ditentukan dalam-input_dir_path
akan ditimpa dengan file yang ditandatangani. CodeSignTool akan meminta pengguna sebelum menimpa file. - If
-program_name
hadir saat menandatangani penginstal MSI, nilainya akan ditampilkan di dialog konfirmasi sebagai nama program. - If
-totp_secret
saat ini, CodeSignTool akan menghitung OTP berbasis waktu untuk penandatanganan, memungkinkan penggunaan alat secara otomatis. Jika parameter ini tidak ada, pengguna akan diminta memasukkan OTP manual.
Contoh:
CodeSignTool batch_sign -username=john.doe@example.com -password="P0z9@lxo41" -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output Masukkan OTP - Tekan enter untuk melanjutkan Perintah tanda batch berhasil dijalankan. Direktori keluaran untuk file yang ditandatangani: keluaran
Memasuki CodeSignTool batch_sign
tanpa parameter yang diperlukan akan menampilkan informasi penggunaan untuk perintah tersebut.
hash
Pra-komputasi hash untuk digunakan nanti dengan batch_hash_sign
perintah. Parameter -input_dir_path
Dibutuhkan. -program_name
adalah opsional
Pemakaian: CodeSignTool [-hV] hash -input_dir_path=<PATH> [-program_name=<PROGRAM_NAME>]
Parameter opsional:
- If
-program_name
hadir saat menandatangani penginstal MSI, nilainya akan ditampilkan di dialog konfirmasi sebagai nama program.
Contoh:
CodeSignTool hash -input_dir_path=input Perintah hash berhasil dijalankan. File hash dibuat di: input
Memasuki CodeSignTool hash
tanpa parameter yang diperlukan akan menampilkan informasi penggunaan untuk perintah tersebut.
batch_sign_hash
Tanda tangani hash yang telah dihitung sebelumnya dengan hash
perintah. Parameter -access_token
, input_dir_path
, -otp
, dan output_dir_path
diperlukan. -credential_id
hanya diperlukan untuk pengguna dengan lebih dari satu sertifikat penandatanganan kode eSigner.
Pemakaian: CodeSignTool [-hV] batch_sign_hash -access_token=<ACCESS_TOKEN> [-credential_id=<CREDENTIAL_ID>] -input_dir_path=<PATH> -output_dir_path=<PATH> -otp=<OTP>
Parameter opsional:
- If
-credential_id
dihilangkan dan pengguna hanya memiliki satu sertifikat penandatanganan kode eSigner, CodeSignTool akan menjadi default untuk itu. Jika pengguna memiliki lebih dari satu sertifikat penandatanganan kode, parameter ini wajib diisi.
Contoh:
CodeSignTool batch_sign_hash -access_token=eyJraWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0IiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJTU 0wuY29tIEF1dGhlbnRpY2F0aW9uIFNlcnZpY2UiLCJleHAiOjE2MTQ4OTcxNDIsImlhdCI6MTYxNDg5MzU0MiwianRpIjoiZmI2OTZlNDUtMTIzOS00ZGE4LW I1MmYtODNkZDE2MTY3ZTM3IiwidXNlciI6eyJ1c2VyX2lkIjoxMzIyODU4LCJ1c2VyX2VtYWlsIjoiYWFyb24uZS5ydXNzZWxsQGdtYWlsLmNvbSIsInNzbF9 hY2NvdW50X2lkIjo0NzQzMDJ9LCJjbGllbnQiOnsiaWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0In19.fCKDs1igjsI UDG2sUN_2OTb90Jw1nKNPHcD1MyEUR6sHCv_aJmcvcaFRne_eKLHzeQ9WtT5y3Fb2ppc50kMnjPG6JgX5gnFMptMn-ySsI277CtKbkSn3u-WSDSovn51jPm82 4wTeJmuXEzdv9clRjTwp6VoM9eqHCIaDAd3MP2xpMaa35cZbDaaAFKQ7jxWo9dUuTZY7DsKK0p1LloUEnmNxtNimQ3GDwkj_M600WB1zYrhDL9_3oZKaXcUx9 qzHcBCLzGgeaZ0xdpZtADxmXDUCcmkZi20yQ53bxqVL2w00sJ73efKB7JGeGWVehO-ZlGs3PUQwooox1JgEgcsA -credential_id=fe537ace-e132-52a9 -c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output -otp=142392 Batch sign hash command executed successfully. Output directory for signed files: output
Memasuki CodeSignTool batch_sign_hash
tanpa parameter yang diperlukan akan menampilkan informasi penggunaan untuk perintah tersebut.