how to import x509.pem pk8 file into jks(keystore)?

16 篇文章 0 订阅

為了讓clipse產生的APK有system權限,必須sign platform Keystore

Prerequisite

  • Software
    • keytool
    • openssl
  • Key
    • File Path: build/target/product/security
    • Private Key: platform.pk8
    • Public Key: platform.x509.pem

Steps

http://en.wikipedia.org/wiki/PKCS

java的keystore(jks)算是pkcs12的部分,但由於jks是sun的proprietary的format,所以openssl沒法處理jks 要先把他轉成pkcs12再用keytool來轉

首先要先把 private key (pkcs8) 從DER format轉成PEM format
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem

然後要把private key 跟public key 轉成pkcs12
openssl pkcs12 -export -in platform.x509.pem -inkey platform.pem -out platform.pkcs12

最後用keytool把他(pkcs12)轉成jks (platform.jks)
keytool -importkeystore -srckeystore platform.pkcs12  -srcstoretype pkcs12 -srcstorepass android  -destkeystore platform.jks -deststoretype jks -deststorepass PASSWORD

注意的是默认 產生的alias是1  還不知道怎麼改alias就是了.......

keytool -list -keystore platform.jks -storetype jks -storepass PASSWORD
Keystore type: JKS
Keystore provider: SUN


Your keystore contains 1 entry


1, Jan 18, 2011, PrivateKeyEntry, 
Certificate fingerprint (MD5): 8D:DB:34:2F:2D:A5:40:84:02:D7:56:8A:F2:1E:29:F9
在build.properties 加上
key.store=platform.jks
key.alias=1


最後 ant release 再打上PASSWORD就好了
2011.06.13
===== java keystore to certificate + private =========
keytool -export -alias 1 -keystore platform.jks -file exported-der.crt
openssl x509 -in exported-der.crt -inform der > platform.x509.pem 
就變回原來的x509 certificate
至於private key
目前查到的結果都是keytool沒辦法export private key
都要另外下載個ExportedPriv.java來作export的動作
 Reference :
http://conshell.net/wiki/index.php/OpenSSL_to_Keytool_Conversion_tips
http://conshell.net/wiki/index.php/Keytool_to_OpenSSL_Conversion_tips
http://www.herongyang.com/crypto/Key_Formats_PKCS8_PKCS12_4.html
POSTED BY ALLSTARS.CHH AT 4:10 PM   
LABELS: ANDROID



There's also a shell script available to do this in linux:

https://github.com/getfatday/keytool-importkeypair

将工具在Linux环境下解压或者解压后Copy到Linux下,运行如下命令

keytool-importkeypair -k ~/android/debug.keystore -p android -pk8 ~/android/platform.pk8 -cert ~/android/platform.x509.pem -alias anyname

其中 -k:表示要生成的Eclipse下的签名的keystore的名字,包括路径名,这里存到主目录的android目录下,名字为debug.keystore。你可以随便取名
-p 表示新生成的keystore的密码是什么,这里为android
-pk8 表示要导入的pk8文件的名称,可以包括路径,这里是主目录的Android目录下,我们的pk8文件和pem文件都在这个目录下
-cert 表示要导入的证书文件,和pk8文件在同一个目录
-alias 表示给生成的debug.keystore取一个别名,这个名字只有我们在签名的时候才用的到,生成在文件名是debug.keystore。这个名字,随便取


http://allstarschh.blogspot.jp/2009/08/blog-post.html
http://hongwei-huang-blog.logdown.com/posts/587300
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值