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