en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

使用Jsign在Linux中进行Microsoft Authenticode代码签名

标志 是用于Microsoft Authenticode代码签名的开源,独立于平台的Java工具。 Jsign易于与Maven,Gradle和Ant之类的构建系统集成,或者可以直接在命令行中使用。

在本操作方法中,我们将介绍使用 标志 从Linux命令行 OV / IV代码签名EV代码签名。 由于Jsign基于Java,因此您也可以在Windows和MacOS系统上使用它。

安装Jsign

首先,您必须下载并安装Jsign。 的 Jsign网站 包括指向Debian和RPM软件包的链接,以便在大多数流行的Linux系统上轻松安装,以及 .jar 文件中。

OV / IV代码签名

对于标准的OV / IV代码签名,您可以使用存储在Java密钥库或PKCS#12(PFX)文件中的证书。 SSL.com提供 代码签名证书 以PKCS#12格式显示,因此在我们的示例中将使用该格式。 在下面的所有代码示例中,用实际值替换ALL-CAPS中显示的值。

  1. 首先,使用 keytool 命令获取 alias 签名时使用的值:
    keytool-列表-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-别名别名--storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161文件到签名
    • 与Jsigner .jar 文件:
      java -jar jsign-3.1.jar --keystore KEYSTORE.p12 --alias别名--storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-标志
  4. 如果命令成功执行,则应该看到如下输出:
    将Authenticode签名添加到example.exe

EV代码签名

您还可以将Jsign与EV代码签名证书一起使用。 此处的示例使用SSL.com EV代码签名证书 安装在 FIPS 140-2 验证的安全密钥 USB 令牌.

  1. 首先,请确保 OpenSC 已安装在您的系统上,因此它可以通过PKCS#11 API与您的令牌通信。 在基于Debian的发行版(如Ubuntu)上,您可以使用以下命令安装OpenSC: apt:
    sudo apt安装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-列表-v -keystore无-storetype PKCS11 -storepass令牌-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公司,SERIALNUMBER = NV2,O = SSL公司,L =休斯顿,ST = TX,C =美国发行人:CN = SSL.com EV代码签名中级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“用于PIV身份验证的证书” --storetype PKCS11 --storepass令牌-PIN-tsaurl http://ts.ssl.com --tsmode RFC3161文件-TO-SIGN
    • 与Jsigner .jar 文件:
      java -jar jsign-3.1.jar --keystore eToken.cfg --alias“用于PIV身份验证的证书” --storetype PKCS11 --storepass令牌PIN --tsaurl http://ts.ssl.com --tsmode RFC3161文件-签署
  6. 如果命令成功执行,则应该看到如下输出:
    将Authenticode签名添加到example.exe

验证数字签名

  1. 您可以通过在Windows中查看签名详细信息来验证数字签名是否有效。
    可以进行数字签名
  2. 您还可以使用 签名工具 在Windows中验证数字签名。
    signtool.exe验证/ 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

eSigner 上的代码签名支持的最大文件大小

电子签名者快递 

50 MB 用于代码签名

相关操作方法

订阅SSL.com的新闻通讯

什么是SSL /TLS?

播放视频

订阅 SSL.com 的时事通讯

不要错过SSL.com上的新文章和更新