回答
通過Keytool存儲專用和公用密鑰對生成的密鑰存儲文件。存儲在密鑰庫中的每個對或條目都由唯一的別名引用。簡而言之:
密鑰倉庫項=私有+公共密鑰 對=由一個別名
密鑰庫保護其個人密碼的每個私鑰,並保護整個密鑰倉庫與完整性鑑定一個(可能不同的)密碼。例如,當您使用Eclipse Android工具的導出簽名應用程序包選項簽署Android應用程序時,系統會要求您先選擇一個密鑰存儲庫,然後要求從該密鑰存儲庫中選擇一個別名/入口/對。爲密鑰庫和所選別名提供密碼後,應用程序將被簽名,並且該別名的公鑰(證書)將嵌入到APK中。
現在回答你的問題,你只能發佈一個更新,是由具有相同的別名再次登錄更新與別名「foo」簽名的應用程序。丟失存儲別名的密鑰庫會阻止您發佈應用的更新版本。
然而有簽訂了新別名的應用程序的方式,但它涉及克隆使用密鑰庫中現有的別名keytool -keyclone:
創建一個新的密鑰倉庫項,其中 具有相同私鑰和 證書鏈作爲原始 條目。
原始條目由 別名標識(如果未提供 ,則默認爲「mykey」)。新的(目標) 條目由dest_alias標識。如果沒有 目標別名在 提供的命令行,則提示用戶 它。
如果私鑰密碼是 從密鑰庫密碼不同, 則該條目將僅 有效的keypass提供克隆。這是 用於保護與別名關聯的私鑰的密碼。如果 在 命令行中沒有提供密鑰密碼,並且私鑰 密碼與 密鑰存儲區密碼不同,則用戶需要 提示輸入該密碼。在 複製項的私鑰可以與 來保護不同的密碼,如果需要的話。如果 在 命令行中沒有提供新的選項,則會提示用戶輸入 新條目的密碼(並且可能 選擇讓它與 克隆條目的私鑰相同)。
的更多信息:
http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html
http://developer.android.com/guide/publishing/app-signing.html
- 1. 顯示來自密鑰庫證書的別名密碼
- 2. 訪問證書密鑰庫
- 3. 在證書密鑰庫中找不到別名
- 4. 如何檢查密鑰庫文件中的證書名稱和別名?
- 5. 在應用程序內檢查密鑰庫別名和KeyStore證書信息名
- 6. 創建從證書,中級證書和私有密鑰庫密鑰
- 7. 將密鑰和SSL證書導入到java密鑰庫
- 8. Java自簽名證書和密鑰庫使用
- 9. 「無法找到解密的證書和私鑰」證書pfx pkcs#12私鑰
- 10. 如何將JKS證書/密鑰轉換爲BouncyCastle證書/密鑰
- 11. 無效的密鑰庫格式創建密鑰庫和證書附接到它
- 12. 生成帶有pem證書和.key私鑰的pkcs12密鑰庫?
- 13. 從私鑰和CA證書包創建java密鑰庫
- 14. GoDaddy SSL證書密鑰庫安裝Tomcat7
- 15. 帶密鑰庫證書的ARM模板
- 16. 在pkcs11密鑰庫中存儲證書
- 17. 從密鑰庫中加載證書
- 18. 在Java中訪問密鑰庫證書
- 19. 動態SSL密鑰庫/證書選擇
- 20. Keytool - 將證書導入密鑰庫
- 21. 進出證書Java密鑰庫
- 22. 瞭解安全和密鑰
- 23. IdentityServer4簽名證書:使用公共可用的證書+密鑰?
- 24. 獲得來自密鑰庫證書不是基於別名在java中
- 25. 使用基於來自Java密鑰庫的別名的單個證書
- 26. 如何將證書鏈及其證書導入java密鑰庫?
- 27. 向Java密鑰庫,JVM導入證書會忽略新證書
- 28. 如何將私鑰和公鑰(pvk,spc)和證書(cer)導入密鑰庫?
- 29. 有密鑰庫密碼和別名密碼不同的風險
- 30. apache cxf - 如何解決密鑰庫中的客戶端證書
的開發站點建議使用所有的應用程序相同的證書。那麼這是否意味着,只要我使用相同的密鑰庫,我可以使用任何帶有任何密碼的別名,並且不會搞亂更新,因爲它只是一個參考?實際的密鑰庫是重要的部分? – Roger 2011-04-20 02:39:09
我重寫了我的答案,以便更準確。簡而言之,您必須確實使用相同的別名來簽署應用程序的所有更新。 – 2011-04-20 02:52:11
@Julio那麼最好的做法是使用相同的別名爲你想發佈的所有不同的應用程序,因爲開發網站建議?我沒有看到爲所有應用程序創建單獨別名的理由。 – 2011-08-31 00:08:20