使用JAR签名进行代码签名
发布日期:2022-11-01JavaArchive(JAR)包格式可用于打包Java应用程序和库。
签名的JAR文件可以选择包含来自TSA时间戳响应,使用RFC#3161格式。
添加JAR签名者添加JAR签名者的链接,SignServer中的JAR签名器称为JArchiveSigner。
要配置JArchiveSigner,请按照以下步骤操作并使用名为jarchive_signer.properties的模板:
1、转到SignServerAdminWebWorkers页面并单击添加以添加新的工作人员。
2、在AddWorker/LoadConfiguration页面上,选择方法FromTemplate。
3、在LoadFromTemplate列表菜单中,选择jarchive_signer.properties并单击Next。
4、单击Apply并选择工作人员名称JArchiveSigner。
5、单击“配置”选项卡并对以下项进行适当的调整:
名称:指定一个名称。
CRYPTOTOKEN:如果使用SignServerEnterprise,这应该与在SignServer软件安装部分中配置的加密令牌的名称相匹配。如果您在设备上,则此加密令牌是为您创建的,名称为HSMCryptoToken10。如果使用SignServerCloud,实例会提供CryptoTokenP12,其中包含您需要的所有示例密钥和证书,您可以继续最后一步并确保您的签名者处于ACTIVE状态。
6、通过单击StatusSummary选项卡,然后单击RenewKey为签名者生成新的密钥对。
7、选择一个密钥算法,例如RSA和一个密钥规范,例如2048,然后单击Generate。
8、通过单击生成CSR为新密钥对创建证书签名请求(CSR)。
9、选择SHA256withRSA等签名算法,并为新证书指定主题DN(名称),例如CN=MSAuthCodeSignerTest,O=MyCompany,C=SE,然后单击Generate。
10、单击下载并保存CSR文件。
11、将CSR文件带到您的证书颁发机构以获取证书和CA证书作为回报。在生产系统中安装证书之前,请确保检查签名者的授权,因为一旦安装了证书,签名者将完全正常运行并准备好接收请求。
12、单击安装证书并浏览证书文件。首先提供签署者证书,然后依次颁发CA证书。单击添加以列出链中的证书。
13、按正确顺序添加所有证书后,单击安装。
14、安装证书后,签名者应处于ACTIVE状态。如果不是,请检查其“状态摘要”页面的顶部是否有任何错误。
使用JArchive签名器
要提交要签名的JAR文件,请使用以下可用接口之一:
客户端 Web 表单上传:使用Web 浏览器中的 SignServer 客户端 Web 表单使用 JArchive 签名者提交并签署 JAR,请参阅使用客户端 Web 提交和签名文件。
使用客户端 CLI 提交文件:使用 SignServer 客户端 CLI SignClient 使用 JArchive 签名者提交并签署 JAR,请参阅使用客户端 CLI 提交文件并签名。
Web 服务:使用 SignServer 客户端 Web 服务 (WS) 接口集成到自定义应用程序中。有关详细信息,请参阅使用普通签名进行代码签名。
使用 cURL 或 wget 编写脚本:使用 HTTP 客户端,例如 cURL 或 wget。有关详细信息,请参阅使用普通签名进行代码签名。
使用客户端Web提交和签名文件
下面描述了如何使用Web浏览器中的SignServer客户端Web表单使用JArchive签名器提交和签署JAR。
要下载示例JAR,然后使用客户端网页提交文件并对其进行签名,请执行以下操作:
下载helloworld.jar测试 JAR 签名。
转到 SignServer客户端 Web通用页面。
在页面上向下滚动到文件上传的通用签名或验证部分,并在工作人员姓名字段中指定 JArchiveSigner 。
单击选择文件,选择helloworld.jar,然后单击提交。
系统将提示您保存已签名的JAR文件helloworld.jar。
使用客户端CLI提交和签名文件
要使用SignServerClientCLISignClient提交JAR文件进行签名,请使用以下命令向工作人员发送请求:
bin/signclientsigndocument-workernameJArchiveSigner-infilehelloworld.jar-outfilehelloworldsigned.jar
workernameSignServer服务器中工作人员的名称在哪里,要infile签名的未签名输入文件的路径,以及outfile签名版本将写入的文件名。
验证签名的JAR文件验证签名JAR文件的链接
Javajarsigner工具可用于验证JAR文件的签名和证书。该工具在Java开发工具包(JDK)中可用。
安装JDK后,打开命令提示符,并使用签名文件的路径执行命令(作为User):
Jarsigner验证示例
jarsigner-verify-strictMyJAR-signed.jar
要获取其他信息以及证书,还请指定选项-verbose和-certs.
JArchive 签名者选项
为 JArchive Signer 配置的最相关的属性是:
对于所有可用的属性,请参阅 SignServer 文档JArchive Signer部分。