今天接觸到了Java簽名相關(guān)的東西,想要學(xué)習(xí)一下垢夹,很多東西介紹的不全面溢吻,前因后果也介紹的不是很清楚。找了很多地方終于了解了大概果元,整理在這里促王。考慮到很多查看的人的需求點(diǎn)不同而晒,也沒有必要把所有的東西放在一遍文章中蝇狼,導(dǎo)致文章很長(zhǎng)。這篇文章就只介紹Java簽名.keystore文件的生成方法倡怎,和相關(guān)的操作迅耘。
生成方法
在終端輸入:
keytool -genkey -alias javadebugkey(別名) -keypass java123(別名密) -keyalg RSA(生成簽名算法) -keysize 1024(密鑰長(zhǎng)度) -validity 365(有效期,天單位) -keystore javadebugkey.keystore(生成的keystore文件)
括號(hào)中是前面字符串含義的說明监署,這些信息在有的時(shí)候是要用的颤专。別名,別名密碼等钠乏。在終端輸入之后栖秕,自定義自己的.keystore信息之后把括號(hào)內(nèi)容去掉。之后回車晓避,先會(huì)讓你輸入密碼累魔,例如123456,之后會(huì)提示讓你輸入相關(guān)信息够滑,輸入即可,中國(guó)是CN吕世。
對(duì).keystore文件的操作
查看
查看一個(gè)keystore文件的內(nèi)部信息:
keytool -list -v -keystore javadebugkey.keystore -storepass 123456
就可以看到相關(guān)信息彰触。
密鑰庫(kù)類型: JKS
密鑰庫(kù)提供方: SUN您的密鑰庫(kù)包含 1 個(gè)條目
別名: javadebugkey
創(chuàng)建日期: 2016-7-6
條目類型: PrivateKeyEntry
證書鏈長(zhǎng)度: 1
證書[1]:
所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
發(fā)布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列號(hào): 48eff7e5
有效期開始日期: Wed Jul 06 21:58:54 CST 2016, 截止日期: Thu Jul 06 21:58:54 CST 2017
證書指紋:
MD5: E7:8B:2F:27:05:3B:35:63:49:FD:79:8A:B5:2A:C6:AE
SHA1: F7:47:F2:71:72:9A:88:43:60:74:AA:2B:65:69:15:03:37:CB:CB:31
SHA256: 77:F6:5B:29:22:85:49:CB:44:1B:A4:4E:BD:3F:B4:2B:D6:B3:05:E1:46:B5:56:7E:F0:AD:C8:08:CA:AB:CE:DE
簽名算法名稱: SHA256withRSA
版本: 3擴(kuò)展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A7 11 32 79 F3 16 DD 7B C5 DE 22 8C FC 70 47 BC ..2y......"..pG.
0010: 4B 00 E0 A8 K...
]
]
導(dǎo)出證書
終端輸入:
keytool -export -alias javadebugkey -keystore javadebugkey.keystore -file javadebugkey.crt(指定導(dǎo)出的證書) -storepass 123456
即可得到該簽名的證書
查看證書
終端輸入:
keytool -printcert -file javadebugkey.crt
得到結(jié)果:
所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
發(fā)布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列號(hào): 48eff7e5
有效期開始日期: Wed Jul 06 21:58:54 CST 2016, 截止日期: Thu Jul 06 21:58:54 CST 2017
證書指紋:
MD5: E7:8B:2F:27:05:3B:35:63:49:FD:79:8A:B5:2A:C6:AE
SHA1: F7:47:F2:71:72:9A:88:43:60:74:AA:2B:65:69:15:03:37:CB:CB:31
SHA256: 77:F6:5B:29:22:85:49:CB:44:1B:A4:4E:BD:3F:B4:2B:D6:B3:05:E1:46:B5:56:7E:F0:AD:C8:08:CA:AB:CE:DE
簽名算法名稱: SHA256withRSA
版本: 3擴(kuò)展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A7 11 32 79 F3 16 DD 7B C5 DE 22 8C FC 70 47 BC ..2y......"..pG.
0010: 4B 00 E0 A8 K...
]
]
刪除信息
刪除一個(gè)條目
keytool -delete -alias javadebugkey -keystore javadebugkey.keystore -storepass 123456
之后用上面的方法查看結(jié)果:
密鑰庫(kù)類型: JKS
密鑰庫(kù)提供方: SUN您的密鑰庫(kù)包含 0 個(gè)條目
導(dǎo)入證書
將我們剛才的證書導(dǎo)入:
keytool -import -alias java -keypass java123 -file javadebugkey.crt -keystore javadebugkey.keystore -storepass 123456
再次查看文件信息:
密鑰庫(kù)類型: JKS
密鑰庫(kù)提供方: SUN您的密鑰庫(kù)包含 1 個(gè)條目
別名: java
創(chuàng)建日期: 2016-7-6
條目類型: trustedCertEntry所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
發(fā)布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列號(hào): 48eff7e5
有效期開始日期: Wed Jul 06 21:58:54 CST 2016, 截止日期: Thu Jul 06 21:58:54 CST 2017
證書指紋:
MD5: E7:8B:2F:27:05:3B:35:63:49:FD:79:8A:B5:2A:C6:AE
SHA1: F7:47:F2:71:72:9A:88:43:60:74:AA:2B:65:69:15:03:37:CB:CB:31
SHA256: 77:F6:5B:29:22:85:49:CB:44:1B:A4:4E:BD:3F:B4:2B:D6:B3:05:E1:46:B5:56:7E:F0:AD:C8:08:CA:AB:CE:DE
簽名算法名稱: SHA256withRSA
版本: 3擴(kuò)展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A7 11 32 79 F3 16 DD 7B C5 DE 22 8C FC 70 47 BC ..2y......"..pG.
0010: 4B 00 E0 A8 K...
]
]
更多操作
更多操作請(qǐng)看keytool的幫助