使用JAR签名进行代码签名

举报
沃通WoTrus 发表于 2022/12/06 16:17:59 2022/12/06
【摘要】 JavaArchive(JAR)包格式可用于打包Java应用程序和库。签名的JAR文件可以选择包含来自TSA时间戳响应,使用RFC#3161格式。添加JAR签名者添加JAR签名者的链接,SignServer中的JAR签名器称为JArchiveSigner。要配置JArchiveSigner,请按照以下步骤操作并使用名为jarchive_signer.properties的模板:1、转到Sig...

JavaArchive(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,然后单击提交。

faq_2022110104_clip_image001.png

系统将提示您保存已签名的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 配置的最相关的属性是:

faq_2022110104_clip_image002.png

对于所有可用的属性,请参阅 SignServer 文档JArchive Signer部分。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。