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

警告: 未提供 -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

所以最终的编译命令是:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

利用let's encrypt为网站免费启用https

概览 Let’s Encrypt旨在为每个站点提供免费的基于SSL证书,以加速HTTP向HTTPS的过渡,恰逢上周HTTP2的发布,对于HTTPS的优化,其速度...

3186
来自专栏禹都一只猫博客

certbot免费SSL证书申请部署

2673

在 CentOS 7 上使用 Apache 的 SSL 证书

本指南将向你演示如何启用 SSL 来保护由 CentOS 或者 Fedora 上的 Apache 提供服务的网站。

1952
来自专栏一体化运维管控平台

HTTPS 证书配置一劳永逸

HTTPS 是在 HTTP 协议基础之上加了一层 SSL/TLS 安全认证机制,原理功能概括一句即客户端和服务端在非对称密钥通讯中交换临时对称密钥进行的加密数据...

1K7
来自专栏PHP在线

关于HTTPS的七个误解

本文详细讨论了关于HTTPS的七个误解,误解内容包括HTTPS无法缓存、SSL证书很贵、HTTPS太慢等等,以下是原文,希望你可以更透彻地了解HTTPS。 来源...

3217
来自专栏Web行业观察

关于搭建HTTPS服务...

关于 HTTPS 的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持 HTTPS 的服务端。

3494
来自专栏james大数据架构

Android 程序打包及签名

为什么要签名???     开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。    ...

2166
来自专栏全沾开发(huā)

记一个node实现的图形验证码从0到1

记一个node实现的图形验证码从0到1 最近做了一个项目,需要用到给用户发送短信验证码,短信必然走的是第三方的服务。。 so 每一条...

2967
来自专栏黑白安全

Adobe发布Flash Player Zero-Day(CVE-2018-5002)漏洞的补丁

Flash Player漏洞(CVE-2018-5002)是一种基于堆栈的缓冲区溢出漏洞,可能导致任意代码执行,Adobe在今天早些时候对其进行了修补。

661
来自专栏日暮星辰

Let’s Encrypt 宣布 ACME v2 正式支持通配符证书

Let’s Encrypt 宣布 ACME v2 正式支持通配符证书。Let’s Encrypt 宣称将继续清除 Web 上采用 HTTPS 的障碍,让每个网站...

1484

扫码关注云+社区