前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >055 警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。

055 警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。

作者头像
上善若水.夏
发布2018-09-28 11:21:15
1.6K0
发布2018-09-28 11:21:15
举报
文章被收录于专栏:上善若水

警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。

签名时间戳会有警告, 在某些手机上会报签名失败

警告对于程序员来说也要十分重视,不然不知道以后会在哪里给自己挖坑

在给生成的apk签名,jdk1.6升级到jdk1.7会出现以下问题:

  1. 明明签名了,并且签名检查apk中也有签名文件,但是安装的时候就是提示安装失败,没有签名,解决办法

将签名命令上加一段话: -digestalg SHA1 -sigalg MD5withRSA 加上后就可以了

旧:jarsigner -keystore test.keystore -storepass test123 -signedjar signed_client.apk client.apk test

新:jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore test.keystore -storepass test123 -signedjar signed_client.apk client.apk test

这样签名完成后就可以安装成功了。

  1. 以上方法可以解决签名后不能安装成功的问题,但是会发现有警告:

警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期 日期 (2063-07-18) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

入有这个警告的话本身对签名没有影响,但是总感觉怪怪的,要想去掉这个警告只要在命令上再加上 -tsa https://timestamp.geotrust.com/tsa 就可以了

最终命令是:

jarsigner -digestalg SHA1 -sigalg MD5withRSA -tsa https://timestamp.geotrust.com/tsa -keystore test.keystore -storepass test123 -signedjar signed_client.apk client.apk test

什么是时间戳?

时间戳(mestamp)是指在一我们签好名的代码中加入辨识文字,如时间或日期,用以保障本地端资料更新顺序与远端服务器端一致。 如下时间戳范例: 2006-05-29 T 10:45 UTC 2008-12-05 T 11:20 UTC Sat Jul 23 06:18:23 2006

时间戳在代码签名证书中的应用

VeriSign 或 Thawte代码签名证书可支持一到三年有效期。一般我们开发的软件的生命周期都会更长,为了保证用数字证书签名后的软件代码在证书到期后仍然有效,我们就必须使用时间戳技术。当我们对代码进行数字签名时,将会产生希哈值发送给时间戳服务器进行时间戳反签名。这样,当用户下载签名代码后,IE等网络浏览器将进行鉴别: (a) 如果是代码签名证书已经过期,用该证书签名的软件代码将不会被信任;(b) 用有效的代码签名证书签名的代码,即使代码签名证书已经到期,但代码仍然是可信的。维瑞代理VeriSign、Thawte代码签名证书免费为客户提供时间戳服务,是为了方便软件开发商可以不用担心由于代码签名证书过期而影响在有效期内已经签名的代码的正常的使用,也就是说,在代码签名证书有效期内签名的代码使用时间戳后永远不会过期。

免费时间戳URL

目前列出的时间戳服务都在国外;在添加时间戳的时候,要确保的你的网络能访问国外,否则会签名不成功。Verisign 时间戳URL: http://timestamp.verisign.com/scripts/timstamp.dll Comodo 时间戳URL: http://timestamp.comodoca.com/authenticode GeoTrust/TrustCenter: http://www.trustcenter.de/codesigning/timestamp

所以最终的编译命令是:

代码语言:javascript
复制
jarsigner -digestalg SHA1 -sigalg MD5withRSA -tsa http://timestamp.comodoca.com/authenticode   -verbose -keystore mtp.jks  -signedjar  t.apk   ke.apk key0   -storepass mima11111   -keypass  mima22222

参考链接:签名时间戳链接

http://www.willrey.com/faq/timestamp.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.10.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。
  • 什么是时间戳?
  • 时间戳在代码签名证书中的应用
  • 免费时间戳URL
  • 所以最终的编译命令是:
相关产品与服务
代码签名证书
代码签名证书(Code Signing Certificates)是为软件开发者提供代码软件数字签名的认证服务。通过对代码的数字签名可以减少软件下载时弹出的安全警告、保证代码不被恶意篡改、使厂商信息对下载用户公开可见等效果,从而建立良好的软件品牌信誉度。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档