Android署名ファイルをpk 8とpemに変換します。


Android署名ツール
よく使われるandroidの署名ツールは、jarsignerとappingnerです。jarsignerはkeystoreファイルを使って、appsignerはpk 8+x 509.pemを使います。
何が.pemと.pk 8ファイルですか?
.pem
Androidがappkに署名したとき、pemというファイルはX.509のデジタル証明書で、ユーザーの公開鍵などの情報が入っています。ファイル形式では、デジタル証明書だけでなく、各種のキーも保存できます。
.pk 8
pk 8を拡张名とするファイルは、PKCS(zhi 8)に対応してprvate keyを保存するべきです。
keystoreファイルをpk 8+pemに変換します。
1.keystoreファイルをpkcs 12フォーマットに変換する
keytool-importkeystore-srkeystore my.keystore-destkeystore tmp.p 12-srstortype JKS-destortype PKCS 12
2.PKCS 12 dumpをpemにする
openssl pkcs 12-in tmp.p 12-nodes-out tmp.rsa.pem
tmp.rsa.pemはテキスト形式です。直接に見ることができます。
テキストを開くと、秘密鍵(PRIVATE KEY)と証明書(CERTIFRICATE)が表示されます。
「BEGIN CERTIFFATE」「END CERTIFFICATE」をコピーして(新規作成ファイル)cert.x 509.pemにします。
「BEGIN RSA PRIVATE KEY」「END RSA PRIVATE KEY」をコピーしてprvate.rsa.pemに来ます。
cert.x 509.pemファイルは最後に必要な証明書ファイルです。
3.pk 8フォーマットの秘密鍵を生成する
openssl pkcs 8-topk 8-out form DER-in prive.rsa.pem-inform PEM-out prvate.pk 8-nocrypt
cert.x 509.pem prvate.pk 8
つまり私たちが最後に必要な書類です。
*備考:
-nocryptこのパラメータ設定key暗号化が設定されています。このパラメータの下に署名すれば、証明書+keyだけがパスワードが必要ではありません。暗号化するべきなら、
openssl pkcs 8-topk 8-out form
DER-in prvate.rsa.pem-inform PEM-out prvate.pk 8次にパスワードを入力します*
4.使い方
java-jar signapk.jar cert.x 509.pem prvate.pk 8 unsigned.appk signed.appk
jarsignerの使い方
jarsigner-verbose-keystore android.keystore-signedjar android_signed.appk android.appk android.keystore
この方法を使うとエラーが発生します。見つけられない証明書チェーンです。×× 専用鍵と対応する共通鍵証明書チェーンとを含む有効な鍵ライブラリ鍵エントリを参照してください。
jarsigner-verbose-keystore DT.jks-signedjar signed.appk unsigned.appk「別名」
知識を補充します:Androidは自分のpk 8を創建して、x 509.pemはそしてappに署名します。
1,生成key
コマンド:keytool-genkey-v-keystore ap.keystore-alias gdam_wing-keyalg RSA-validity 20000
コンソール出力:
鍵ライブラリのパスワードを入力:
新しいパスワードを再入力:
お名前と苗字は何ですか?
[Unknown]:TechStone
組織の名前は何ですか?
[Unknown]:ガンダム
あなたの組織名は何ですか?
[Unknown]:ガンダム
あなたの町や地域の名前は何ですか?
[Unknown]:Shanghai
あなたがいる省/市/自治区の名前は何ですか?
[Unknown]:Shanghai
この単位の二文字の国/地域コードは何ですか?
[Unknown]:zh
CN=TechStone、OU=ガンダム、O=ガンダム、L=Shanghai、ST=Shanghai、C=zhは正しいですか?
[いいえ]:Y
2,048ビットのRSA鍵ペアと自己署名証明書(SHA 256 withRSA)を以下のオブジェクトに生成しています。
CN=TechStone、OU=ガンダム、O=ガンダム、L=Shanghai、ST=Shanghai、C=zh
入力の鍵のパスワード
(鍵庫のパスワードと同じ場合、車に返却する):
【app.keystoreを記憶しています。】
このコマンドは、組織・個人情報付きkeyを生成し、ap.keystoreファイルに保存します。
2,keyのフォーマットを変換します。
コマンド:
keytool-importkeystore-srkeystore ap.keystore-destkeystore tmp.p 12-srstortype JKS-destortype PKCS 12
コンソールはtmp.p 12のパスワードとap.keystoreのパスワードを出力するように指示します。正しく入力したらtmp.p 12ファイルを作成します。
3,PKCS 12フォーマットのkey dumpを直接読むことができるテキストです。
コマンド:
openssl pkcs 12-in tmp.p 12-nodes-out tmp.rsa.pem
dump過程でもパスワードの入力が提示されます。正確に入力してから読めるtokenはtmp.rsa.pemに保存されます。
4,抽出
テキストエディタでtmp.rsa.pemを開きます。
-----BEGIN PRIVATE KEY-----
はい、
-----END PRIVATE KEY-----
この段(この二つのタグを含む)のテキストをコピーして、ファイルmy_に新規作成します。prvate.rsa.pem
将を置く
-----BEGIN CERTIFFATE-----
はい、
-----END CERTIFFATE-----
この部分(これらの2つのタグを含む)のテキストをコピーして、ファイルmy.x 509.pemに新規作成します。(署名に使う公開鍵)
5,変換して、pk 8フォーマットの秘密鍵を生成します。
openssl pkcs 8-topk 8-out form DER-in my_prvate.rsa.pem-inform PEM-out my_prvate.pk 8-nocrypt
この生成のmy_prvate.pk 8は署名に使う秘密鍵です。
6,appkに署名する
java-jar signapk.jar my.x 509.pem my_prvate.pk 8 my.appk my_signed.appk
以上のAndroid署名ファイルがpk 8とpemに変換されたのは、小編集が皆さんに提供しているすべての内容です。参考にしていただければと思います。よろしくお願いします。