Android平臺打包發(fā)布apk應(yīng)用,需要使用數(shù)字證書(.keystore文件)進(jìn)行簽名,用于表明開發(fā)者身份。
Android證書的生成是自助和免費(fèi)的,不需要審批或付費(fèi)。
可以使用JRE環(huán)境中的keytool命令生成。以下是windows平臺生成證書的方法:
安裝JRE環(huán)境(如已有可跳過)
可從Oracle官方下載jre安裝包:https://www.oracle.com/technetwork/java/javase/downloads/index.html
下面以安裝目錄為“C:\Program Files\Java\jre1.8.0_201”為例
建議將JRE安裝路徑添加到系統(tǒng)環(huán)境變量,已配置可跳過此章節(jié)
打開命令行(cmd),輸入以下命令:
set PATH=%PATH%;"C:\Program Files\Java\jre1.8.0_201\bin"
- 第一行:切換工作目錄到D:路徑
- 第二行:將jre命令添加到臨時環(huán)境變量中
生成簽名證書
使用keytool -genkey命令生成證書:
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
- testalias是證書別名,可修改為自己想設(shè)置的字符,建議使用英文字母和數(shù)字
- test.keystore是證書文件名稱,可修改為自己想設(shè)置的文件名稱
回車后會提示:
Enter keystore password: //輸入證書文件密碼,輸入完成回車
Re-enter new password: //再次輸入證書文件密碼,輸入完成回車
What is your first and last name?
[Unknown]: //輸入名字和姓氏,輸入完成回車
What is the name of your organizational unit?
[Unknown]: //輸入組織單位名稱,輸入完成回車
What is the name of your organization?
[Unknown]: //輸入組織名稱,輸入完成回車
What is the name of your City or Locality?
[Unknown]: //輸入城市或區(qū)域名稱,輸入完成回車
What is the name of your State or Province?
[Unknown]: //輸入省/市/自治區(qū)名稱,輸入完成回車
What is the two-letter country code for this unit?
[Unknown]: //輸入國家/地區(qū)代號(兩個字母),中國為CN,輸入完成回車
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?
[no]: //確認(rèn)上面輸入的內(nèi)容是否正確,輸入y,回車
Enter key password for <testalias>
(RETURN if same as keystore password): //確認(rèn)證書密碼與證書文件密碼一樣(HBuilder|HBuilderX要求這兩個密碼一致),直接回車就可以
以上命令運(yùn)行完成后就會生成證書,路徑為“D:\test.keystore”。
查看證書信息
可以使用以下命令查看:
keytool -list -v -keystore test.keystore
Enter keystore password: //輸入密碼,回車
會輸出以下格式信息:
Keystore type: PKCS12
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: test
Creation date: 2019-10-28
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN
Issuer: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN
Serial number: 7dd12840
Valid from: Fri Jul 26 20:52:56 CST 2019 until: Sun Jul 02 20:52:56 CST 2119
Certificate fingerprints:
MD5: F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5
SHA1: BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7
SHA256: 24:11:7D:E7:36:12:BC:FE:AF:2A:6A:24:BD:04:4F:2E:33:E5:2D:41:96:5F:50:4D:74:17:7F:4F:E2:55:EB:26
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
其中證書指紋信息(Certificate fingerprints):
- MD5
證書的MD5指紋信息(安全碼MD5) - SHA1
證書的SHA1指紋信息(安全碼SHA1) - SHA256
證書的SHA256指紋信息(安全碼SHA245)