asdtiang的博客 感謝blogjava提供的博客交流平臺

          轉載:java keytool使用

          Posted on 2010-12-22 14:00 asdtiang 閱讀(822) 評論(0)  編輯  收藏 所屬分類: JAVA

          Keytool是一個Java數據證書的管理工具 ,Keytool將密鑰(key)和證書(certificates)存在一個稱為keystore的文件中在keystore里,包含兩種數據:
          密鑰實體(Key entity)——密鑰(secret key)又或者是私鑰和配對公鑰(采用非對稱加密)
          可信任的證書實體(trusted certificate entries)——只包含公鑰


          ailas(別名)每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫

           

          JDK中keytool常用命令:

          -genkey      在用戶主目錄中創建一個默認文件".keystore",還會產生一個mykey的別名,mykey中包含用戶的公鑰、私鑰和證書
          (在沒有指定生成位置的情況下,keystore會存在用戶系統默認目錄,如:對于window xp系統,會生成在系統的C:\Documents and Settings\UserName\文件名為“.keystore”)
          -alias       產生別名
          -keystore    指定密鑰庫的名稱(產生的各類信息將不在.keystore文件中)
          -keyalg      指定密鑰的算法 (如 RSA  DSA(如果不指定默認采用DSA))
          -validity    指定創建的證書有效期多少天
          -keysize     指定密鑰長度
          -storepass   指定密鑰庫的密碼(獲取keystore信息所需的密碼)
          -keypass     指定別名條目的密碼(私鑰的密碼)
          -dname       指定證書擁有者信息 例如:  "CN=名字與姓氏,OU=組織單位名稱,O=組織名稱,L=城市或區域名稱,ST=州或省份名稱,C=單位的兩字母國家代碼"
          -list        顯示密鑰庫中的證書信息      keytool -list -v -keystore 指定keystore -storepass 密碼
          -v           顯示密鑰庫中的證書詳細信息
          -export      將別名指定的證書導出到文件  keytool -export -alias 需要導出的別名 -keystore 指定keystore -file 指定導出的證書位置及證書名稱 -storepass 密碼
          -file        參數指定導出到文件的文件名
          -delete      刪除密鑰庫中某條目          keytool -delete -alias 指定需刪除的別  -keystore 指定keystore  -storepass 密碼
          -printcert   查看導出的證書信息          keytool -printcert -file yushan.crt
          -keypasswd   修改密鑰庫中指定條目口令    keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new  新密碼  -storepass keystore密碼  -keystore sage
          -storepasswd 修改keystore口令      keytool -storepasswd -keystore e:\yushan.keystore(需修改口令的keystore) -storepass 123456(原始密碼) -new yushan(新密碼)
          -import      將已簽名數字證書導入密鑰庫  keytool -import -alias 指定導入條目的別名 -keystore 指定keystore -file 需導入的證書

           

          下面是各選項的缺省值。 
          -alias "mykey"

          -keyalg "DSA"

          -keysize 1024

          -validity 90

          -keystore 用戶宿主目錄中名為 .keystore 的文件

          -file 讀時為標準輸入,寫時為標準輸出

                    


          1、keystore的生成:

          分階段生成:
               keytool -genkey -alias yushan(別名) -keypass yushan(別名密碼) -keyalg RSA(算法) -keysize 1024(密鑰長度) -validity 365(有效期,天單位) -keystore        

          e:\yushan.keystore(指定生成證書的位置和證書名稱) -storepass 123456(獲取keystore信息的密碼);回車輸入相關信息即可;
              
          一次性生成:
               keytool -genkey -alias yushan -keypass yushan -keyalg RSA -keysize 1024 -validity 365 -keystore  e:\yushan.keystore -storepass 123456 -dname "CN=(名字與

          姓氏), OU=(組織單位名稱), O=(組織名稱), L=(城市或區域名稱), ST=(州或省份名稱), C=(單位的兩字母國家代碼)";(中英文即可)

          2、keystore信息的查看:
             keytool -list  -v -keystore e:\keytool\yushan.keystore -storepass 123456
             顯示內容:
          ---------------------------------------------------------------------
             Keystore 類型: JKS
          Keystore 提供者: SUN

          您的 keystore 包含 1 輸入

          別名名稱: yushan
          創建日期: 2009-7-29
          項類型: PrivateKeyEntry
          認證鏈長度: 1
          認證 [1]:
          所有者:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
          簽發人:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
          序列號:4a6f29ed
          有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
          證書指紋:
                   MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
                   SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
                   簽名算法名稱:SHA1withRSA
                   版本: 3
          --------------------------------------------------------------------

           

          缺省情況下,-list 命令打印證書的 MD5 指紋。而如果指定了 -v 選項,將以可讀格式打印證書,如果指定了 -rfc 選項,將以可打印的編碼格式輸出證書。


          keytool -list  -rfc -keystore e:\yushan.keystore -storepass 123456

          顯示:

          -------------------------------------------------------------------------------------------------------

          Keystore 類型: JKS
          Keystore 提供者: SUN

          您的 keystore 包含 1 輸入

          別名名稱: yushan
          創建日期: 2009-7-29
          項類型: PrivateKeyEntry
          認證鏈長度: 1
          認證 [1]:
          -----BEGIN CERTIFICATE-----
          MIICSzCCAbSgAwIBAgIESm8p7TANBgkqhkiG9w0BAQUFADBqMQ8wDQYDVQQGDAbkuK3lm70xDzAN
          BgNVBAgMBua5luWNlzEPMA0GA1UEBwwG5rmY5r2tMREwDwYDVQQKDAh4eOWNj+S8mjERMA8GA1UE
          CwwIeHjlhazlj7gxDzANBgNVBAMTBnl1c2hhbjAeFw0wOTA3MjgxNjQwMTNaFw0xMDA3MjgxNjQw
          MTNaMGoxDzANBgNVBAYMBuS4reWbvTEPMA0GA1UECAwG5rmW5Y2XMQ8wDQYDVQQHDAbmuZjmva0x
          ETAPBgNVBAoMCHh45Y2P5LyaMREwDwYDVQQLDAh4eOWFrOWPuDEPMA0GA1UEAxMGeXVzaGFuMIGf
          MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJoru1RQczRzTnBWxefVNspQBykS220rS8Y/oX3mZa
          hjL4wLfOURzUuxxuVQR2jx7QI+XKME+DHQj9r6aAcLBCi/T1jwF8mVYxtpRuTzE/6KEZdhowEe70
          liWLVE+hytLBHZ03Zhwcd6q5HUMu27du3MPQvqiwzTY7MrwIvQQ8iQIDAQABMA0GCSqGSIb3DQEB
          BQUAA4GBAGoQQ1/FnTfkpQh+Ni6h3fZdn3sR8ZzDMbOAIYVLAhBb85XDJ8QZTarHbZMJcIdHxAl1
          i08ct3E8U87V9t8GZFWVC4BFg/+zeFEv76SFpVE56iX7P1jpsu78z0m69hHlds77VJTdyfMSvtXv
          sYHP3fxfzx9WyhipBwd8VPK/NgEP
          -----END CERTIFICATE-----

          -------------------------------------------------------------------------------------------------------

          3、證書的導出:

          keytool -export -alias yushan -keystore e:\yushan.keystore -file e:\yushan.crt(指定導出的證書位置及證書名稱) -storepass 123456

          4、查看導出的證書信息
             keytool -printcert -file yushan.crt
             顯示:(在windows下可以雙擊yushan.crt查看)
          -----------------------------------------------------------------------
          所有者:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
          簽發人:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
          序列號:4a6f29ed
          有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
          證書指紋:
                   MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
                   SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
                   簽名算法名稱:SHA1withRSA
                   版本: 3
          -----------------------------------------------------------------------

          5、證書的導入:
             準備一個導入的證書:
             keytool -genkey -alias shuany -keypass shuany -keyalg RSA -keysize 1024 -validity 365 -keystore  e:\shuany.keystore -storepass 123456 -dname "CN=shuany,

          OU=xx, O=xx, L=xx, ST=xx, C=xx";
             keytool -export -alias shuany -keystore e:\shuany.keystore -file e:\shuany.crt -storepass 123456
           
            現在將shuany.crt 加入到yushan.keystore中:
            keytool -import -alias shuany(指定導入證書的別名,如果不指定默認為mykey,別名唯一,否則導入出錯) -file e:\shuany.crt -keystore e:\yushan.keystore -storepass

          123456

           keytool -list  -v -keystore e:\keytool\yushan.keystore -storepass 123456
          顯示:
          ------------------------------------------------------------------------------
          Keystore 類型: JKS
          Keystore 提供者: SUN

          您的 keystore 包含 2 輸入

          別名名稱: yushan
          創建日期: 2009-7-29
          項類型: PrivateKeyEntry
          認證鏈長度: 1
          認證 [1]:
          所有者:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
          簽發人:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
          序列號:4a6f29ed
          有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
          證書指紋:
                   MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
                   SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
                   簽名算法名稱:SHA1withRSA
                   版本: 3


          *******************************************
          *******************************************


          別名名稱: shuany
          創建日期: 2009-7-29
          輸入類型: trustedCertEntry

          所有者:CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx
          簽發人:CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx
          序列號:4a6f2cd9
          有效期: Wed Jul 29 00:52:41 CST 2009 至Thu Jul 29 00:52:41 CST 2010
          證書指紋:
                   MD5:15:03:57:9B:14:BD:C5:50:21:15:47:1E:29:87:A4:E6
                   SHA1:C1:4F:8B:CD:5E:C2:94:77:B7:42:29:35:5C:BB:BB:2E:9E:F0:89:F5
                   簽名算法名稱:SHA1withRSA
                   版本: 3


          *******************************************
          *******************************************
          ------------------------------------------------------------------------------

          6、證書條目的刪除:
           keytool -delete -alias shuany(指定需刪除的別名) -keystore yushan.keystore -storepass 123456
           
          7、證書條目口令的修改:
          keytool -keypasswd -alias yushan(需要修改密碼的別名) -keypass yushan(原始密碼) -new 123456(別名的新密碼)  -keystore e:\yushan.keystore -storepass 123456

          8、keystore口令的修改:
           keytool -storepasswd -keystore e:\yushan.keystore(需修改口令的keystore) -storepass 123456(原始密碼) -new yushan(新密碼)

           

          9、修改keystore中別名為yushan的信息

           

          keytool -selfcert -alias yushan -keypass yushan -keystore e:\yushan.keystore -storepass 123456 -dname "cn=yushan,ou=yushan,o=yushan,c=us"



          天蒼蒼,野茫茫,風吹草底見牛羊

          posts - 80, comments - 24, trackbacks - 0, articles - 32

          Copyright © asdtiang

          asdtiang的博客 PaidMailz
          點擊廣告網賺A(每天4個廣告,每個0.0025美元,一個搜索廣告0.03美元)
          主站蜘蛛池模板: 浙江省| 维西| 西丰县| 崇礼县| 万州区| 若尔盖县| 大英县| 洞口县| 元朗区| 南昌市| 黄平县| 临泽县| 张家口市| 东阿县| 扶沟县| 昌宁县| 宣汉县| 乌鲁木齐市| 山丹县| 乐至县| 西峡县| 大邑县| 冷水江市| 西平县| 太谷县| 天全县| 宜黄县| 丽水市| 佳木斯市| 西宁市| 海南省| 遂川县| 萨嘎县| 呼伦贝尔市| 杭锦后旗| 三江| 平度市| 宁阳县| 玉林市| 长寿区| 涪陵区|