生成Apk签名证书keystore,openssl与证书,keystore,jks,pem/pk8

本文详细介绍了Android应用签名的各种方式及工具,包括KeyStore、JKS、pem/pk8等不同类型的签名文件及其应用场景,同时提供了生成签名文件的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  android app 无签名能否安装?可以!  其实这句话说得不全对。 你所谓的无签名其实里面已经有一个默认debug签名了。只不过debug签名时效只有一年而已。
-- Android签名文件有很多种,比如最早的keystore,jks,pem/pk8
 1.KeyStore: KeyStore是Eclipse开发Android的时候最早的签名文件了.
 2.JKS(Java key store): JKS是目前Android Studio中创建签名文件的格式(Build -> Generate Signed APK)即可创建和使用签名文件为对应apk进行签名
 3.pem/pk8 :这个是系统的签名文件,Android系统在编译的时候也是需要签名,所以这个是系统的签名文件,那系统签名文件可不可以签名APK呢?答案是:可以.

> JDK生成Keystore签名文件,Android包签名;数字证书KeyStore

使用Keytool工具生成证书Keystore和证书签名请求文件- http://blog.youkuaiyun.com/u014386474/article/details/51996019
如何生成KeyStore文件 android-- http://jingyan.baidu.com/article/59703552e877f98fc00740f0.html
Android中应用程序如何获得系统签名权限- http://blog.youkuaiyun.com/jingwen3699/article/category/1235730

1.命令行生成keystore,dos下进入JDK的bin目录,运行如下命令:
 keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
 (-validity 20000代表有效期天数),命令完成后,bin目录中会生成android.keystore,查看命令keytool -list -keystore "android.keystore" 输入你设置的keystore密码

2. 使用Studio的Build-Generate Signed Apk生成Key store
-- 使用cmd时cd命令失效- https://blog.youkuaiyun.com/u010603823/article/details/52182679
-- 查看Keystore中的一些信息:如MD5 Sha1
keytool -list -v -keystore apk_keystore.jks

-- 进行签名需要的工具有哪些?
  对apk进行签名需要用到签名证书和签名工具。Android系统要求对APP进行签名的数字证书可以由开发者自己生成。签名工具有jarsigner和signapk。jarsigner是Java本身自带的一个工具,他也可以对jar进行签名的;而signapk是专门为了Android应用程序apk进行签名的工具。二者的区别是:jarsigner工具签名时使用的是keystore签名文件,signapk工具签名时使用的是pk8,x509.pem文件。

> openssl证书的生成和使用
  证书类别 
- 根证书:生成服务器证书,客户端证书的基础。自签名。 
- 服务器证书:由根证书签发。配置在服务器上。 
- 客户端证书:由根证书签发。配置在服务器上,并发送给客户,让客户安装在浏览器里。
  要注意, 
1. 服务器证书的cn要和servername一致,否则启动httpd时有警告。 
2. 浏览器安装客户端证书时,需要用pkcs12转换成pfx格式,否则可以安装但无效。 
3. 把根证书安装到浏览器的受信CA中,访问服务器时就不会出警告了。

Ubuntu 交叉编译 OpenSSL,并在 Android 中使用- https://blog.youkuaiyun.com/twilightdream/article/details/74735991
OpenSSL Library for iOS and Android- https://github.com/leenjewel/openssl_for_ios_and_android
http://git.oschina.net/wandererparsifal/openssldemo

openSSL 生成自签公钥证书和私钥:
 - generate key
  1.创建EC参数和私钥文件 
openssl ecparam -genkey -name prime256v1 -out attestation_key.pem
  2.查看EC私钥文件 
cat attestation_key.pem
  3.查看EC私钥 
openssl ecparam -in attestation_key.pem -text
  4.验证EC参数 
openssl ecparam -in attestation_key.pem -check
 - self-signed certificate
  5.创建公钥证书 
openssl req -new -sha256 -key attestation_key.pem -out csr.csr -subj “/C=CN/ST=Shanghai/O=WhoAreYou/CN=WAY\ Fingerprint\ U2F\ Authenticator”
  6.自签发公钥证书至attestation.pem 
openssl req -config opnssl.cnf -x509 -sha256 -days 3650 -key attestation_key.pem -in csr.csr -out attestation.pem

 - convert to der
openssl x509 -outform der -in attestation.pem -out attestation.der 
openssl ec -in attestation_key.pem -outform der -out attestation_key.der

 - generate C code
python dump-der.py > certificates.c || ( rm certificates.c && exit 1 )

> 使用openssl模拟CA和CA证书的签发
当使用ssl/tls进行加密通信时,必须要有数字证书。若通信只限制在局域网内,可以不向第三方机构申请签发证书,可以通过openssl模拟CA(Certificate Authority),并通过该CA签发证书。
利用OpenSSL建立SSL安全通信(C/S)(win10 VS)- https://blog.youkuaiyun.com/qq_40394039/article/details/80570207
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值