首先在java_home\bin\keytool.exe進行安裝
java
先生成一個簽名算法
keytool -genkey -keystore you.keystore –alias youApp安全
將簽名加到jar上ide
注意點:先將java_home配置好工具
另其餘的keytool命令附錄以下:網站
經常使用參數:
ui
-alias 別名,證書庫中的每條證書以別名來區分,這個alias一般不區分大小寫。編碼
-keystore 證書庫文件路徑和名字加密
-keyalg 指定生成密鑰對的算法(如RSA DSA,默認值爲:DSA)spa
-keysize 指定密鑰長度 (默認 1024)
-validity 指定建立的證書有效期多少天(默認 90)
-storepass 指定證書庫的訪問密碼
-keypass 指定證書庫中指定條目證書的私鑰密碼
-dname 表示證書的Distinguished Names發行者信息。其中"CN=commonName證書名(通常是網站的域名),OU=organizationUnit組織單位名稱,O=organizationName組織名稱,L=localityName城市或區域名,S=stateName州或省份名稱,C=country兩位的母國家代碼"
-file 導出的證書位置(包含公鑰和主題信息的證書)
-v 顯示證書庫中的證書詳細信息
-rfc 以可打印的編碼格式輸出證書詳細信息
Keystore在java中的實現:
Keytool類位於java.security包下,提供一個很是好的接口去取得和修改一個keystore中的信息. 目前有兩個命令行:keytool和jarsinger,一個GUI工具Policy 能夠實現keystore.因爲keystore是公開的,用戶能夠用它寫一些額外的安全應用程序.
Keystore還有一個sun公司提供的內在實現.它把keystore做爲一個文件來實現.利用了一個keystore類型(格式)"JKS".它用單獨的密碼保護每個私有鑰匙.也用可能不一樣的密碼保護整個keystore的完整性.
Keystore證書庫中有兩種不一樣類型的項:
密鑰項 - 每項存放極爲敏感的加密密鑰信息,這種信息以一種受保護的格式儲存以防止未受權的訪問。一般,儲存在這類項中的密鑰是機密密鑰,或是伴有用於認證相應公鑰用的證書「鏈」的私鑰。keytool 和 jarsigner 工具只處理後一類型的項,即私鑰及其關聯的證書鏈。
可信任的證書項 - 每項包含一個屬於另外一團體的公鑰證書。它之因此叫作「可信任的證書」,是由於密鑰倉庫的擁有者相信證書中的公鑰確實屬於證書「主體」(擁有者)識別的身份。證書籤發人經過對證書籤名來保證這點。
證書:(也叫公鑰證書)是來自某個實體(簽發人)的經數字簽名的聲明,它聲明另外一實體(主體)的公鑰(及其它信息)具備某一特定的值。
公鑰: 是與特定實體相關聯的數字。全部須要與該實體進行信任交互的人都應知道該數字。公鑰用於校驗簽名。
數字簽名: 若是某些數據經數字簽名,說明它們已與某一實體的「身份」存儲在一塊兒,並且證實該實體的簽名知道這些數據。經過用該實體的私鑰進行繪製,這些數據就是不可僞造的了。
簽名: 用實體私有鑰匙加密某些消息,從而獲得加密數據;
私鑰: 是一些數字,私有和公共鑰匙存在全部用公共鑰匙加密的系統的鑰匙對中.公共鑰匙用來加密數據,私有鑰匙用來計算簽名.公鑰加密的消息只能用私鑰解密,私鑰簽名的消息只能用公鑰檢驗簽名。
實體: 一個實體能夠是一我的,一個組織,一個程序,一臺計算機,一個商業,一個銀行,或其餘你想信任的東西.
jarsigner 工具利用證書庫中的信息來產生或校驗 Java 存檔 (JAR) 文件的數字簽名 (JAR 文件將類文件、圖象、聲音和/或其它數字化數據打包在一個文件中)。jarsigner 用 JAR 文件所附帶的證書(包含於 JAR 文件的簽名塊文件中)來校驗 JAR 文件的數字簽名,而後檢查該證書的公鑰是否「可信任」,便是否包括在指定的證書庫中。