對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2017/7/23 1:45:03
JAVA KEYTOOL的使用及申請憑證(以MICROSOFT ACTIVE DIRECTORY CERTIFICATE SERVICES為例)
KEYTOOL是一個JAVA資料證書的管理工具,KEYTOOL將金鑰(KEY)和證書(CERTIFICATES)存在一個稱為KEYSTORE的檔中 在KEYSTORE裡,包含兩種資料:
JDK中KEYTOOL常用指令:
下面是各選項的預設值。
1. KEYSTORE的產生: 
分階段產生:
KEYTOOL -GENKEY -ALIAS EDI-PROD(別名) -KEYPASS PASSWORD(別名密碼) -KEYALG RSA(演算法) -KEYSIZE 1024(金鑰長度) -VALIDITY 365(有效期,天單位) -KEYSTORE ./EDI.KEYSTORE(指定生成證書的位置和證書名稱) -STOREPASS 123456(獲取KEYSTORE資訊的密碼)
一次性產生:
KEYTOOL -GENKEY -ALIAS EDI-PROD -KEYPASS PASSWORD -KEYALG RSA -KEYSIZE 1024 -VALIDITY 365 -KEYSTORE ./EDI.KEYSTORE -STOREPASS 123456 -DNAME "CN=(名字與姓氏), OU=(組織單位名稱), O=(組織名稱), L=(城市或區域名稱), ST=(州或省份名稱), C=(單位的兩字母國家代碼)";(中英文都可)
2.查看KEYSTORE裡的資訊:
KEYTOOL -LIST  -V -KEYSTORE ./EDI.KEYSTORE -STOREPASS 123456
KEYTOOL -CERTREQ -ALIAS EDI-PROD -FILE EDI-CERTREQ.TXT -KEYSTORE
./EDI.KEYSTORE -STOREPASS 123456 -KEYPASS PASSWORD
EDI-CERTREQ.TXT的檔案內容:
5.將EDI-CERTNEW.P7B 加入到EDI.KEYSTORE中:
KEYTOOL -IMPORT -ALIAS EDI-PROD(指定導入證書的別名,如果不指定,預設值為MYKEY,別名是唯一,沒指定對導入會出錯) -FILE EDI-CERTNEW.P7B -KEYSTORE ./EDI.KEYSTORE -STOREPASS 123456 -KEYPASS PASSWORD
並可查看KEYSTORE裡,應有新增一個憑證的資訊:
KEYTOOL -LIST  -V -KEYSTORE ./EDI.KEYSTORE -STOREPASS 123456
- 金鑰實體(KEY ENTITY):金鑰(SECRET KEY)又或者是私密金鑰和配對公開金鑰(採用非對稱加密)
- 可信任的證書實體(TRUSTED CERTIFICATE ENTRIES):只包含公開金鑰
JDK中KEYTOOL常用指令:
- -GENKEY:在用戶主目錄中創建一個預設檔".KEYSTORE",還會產生一個MYKEY的別名,MYKEY中包含用戶的公開金鑰、私密金鑰和證書(在沒有指定生成位置的情況下,KEYSTORE會存在使用者系統預設目錄,如:對於WINDOWS系統,會生成在系統的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:\POLIN.KEYSTORE(需修改口令的KEYSTORE) -STOREPASS 123456(原始密碼) -NEW POLINWEI(新密碼)
- -IMPORT:將已簽名數位憑證導入金鑰庫  KEYTOOL -IMPORT -ALIAS 指定導入條目的別名 -KEYSTORE 指定KEYSTORE -FILE 需導入的證書
下面是各選項的預設值。
- -ALIAS "MYKEY"
- -KEYALG "DSA"
- -KEYSIZE 1024
- -VALIDITY 90
- -KEYSTORE  為使用者主目錄中名為 .KEYSTORE 的文件
- -FILE 讀入時為標準輸入,寫出時為標準輸出
1. KEYSTORE的產生: 
分階段產生:
KEYTOOL -GENKEY -ALIAS EDI-PROD(別名) -KEYPASS PASSWORD(別名密碼) -KEYALG RSA(演算法) -KEYSIZE 1024(金鑰長度) -VALIDITY 365(有效期,天單位) -KEYSTORE ./EDI.KEYSTORE(指定生成證書的位置和證書名稱) -STOREPASS 123456(獲取KEYSTORE資訊的密碼)
一次性產生:
KEYTOOL -GENKEY -ALIAS EDI-PROD -KEYPASS PASSWORD -KEYALG RSA -KEYSIZE 1024 -VALIDITY 365 -KEYSTORE ./EDI.KEYSTORE -STOREPASS 123456 -DNAME "CN=(名字與姓氏), OU=(組織單位名稱), O=(組織名稱), L=(城市或區域名稱), ST=(州或省份名稱), C=(單位的兩字母國家代碼)";(中英文都可)
2.查看KEYSTORE裡的資訊:
KEYTOOL -LIST  -V -KEYSTORE ./EDI.KEYSTORE -STOREPASS 123456
KEYSTORE 類型: JKS3.產生要向第三方發證單位(如:CA)申請的檔案
KEYSTORE 提供者: SUN
您的 KEYSTORE 包含 1 輸入
別名名稱: EDI-PROD
建立日期: 2013/2/6
項目類型:PRIVATEKEYENTRY
認證鏈長度: 1
認證 [1]:
所有者:CN=MIS, OU=MIS, O=WEI, L=TAIPEI, ST=TAIPEI, C=TW
核發者:CN=MIS, OU=MIS, O=WEI, L=TAIPEI, ST=TAIPEI, C=TW
序號:51121B83
自以下日期開始生效:WED FEB 06 16:59:47 CST 2013,直到:THU FEB 06 16:59:47 CST 2014
憑證指紋:
        MD5:C7:EE:5A:17:C6:FF:0D:30:7C:6B:52:53:D7:29:B1:A6
        SHA1:35:D9:F0:07:5B:2D:9E:89:45:9A:4D:B8:8B:B9:7F:12:D1:36:3B:EC
        簽名演算法名稱:SHA1WITHRSA
        版本:3
KEYTOOL -CERTREQ -ALIAS EDI-PROD -FILE EDI-CERTREQ.TXT -KEYSTORE
./EDI.KEYSTORE -STOREPASS 123456 -KEYPASS PASSWORD
EDI-CERTREQ.TXT的檔案內容:
-----BEGIN NEW CERTIFICATE REQUEST----- 4.登入 MICROSOFT ACTIVE DIRECTORY CERTIFICATE SERVICES 網站 HTTP://LOCALHOST/CERTSRV 作申請
MIIBMTCCAQICAQAWWTELMAKGA1UEBHMCVFCXDZANBGNVBAGTBLRHAXBLATEPMA0GA1UEBXMGVGFP
CGVPMQWWCGYDVQQKEWN3ZWKXDDAKBGNVBASTA21PCZEMMAOGA1UEAXMDBWLZMIGFMA0GCSQGSIB3
DQEBAQUAA4GNADCBIQKBGQCLZG0MUVPAF+CMOG/PWOBKY+VG8L6W6XOF0HGFA3S+3LFV+V79EZLF
VZ3E7L8HEOXM2VTTBM9ODMSBHOG8ZFUBAWYEQ7JZOJ74VSXT3RYFPMEFQMQYZYVN+SD5X9GWX3SB
52L7I0E+1ZKRXC674E9YMGZATZFQISCIJ6VJ76IL3WIDAQABOAAWDQYJKOZIHVCNAQEFBQADGYEA
HZ0J99+3Z0SP56LWXZBAVWNNMJ1ATTPX5WQCACG+NFDUUMCV2NHY/ZWZD9P+EDNBBHGBAFQC8HNU
+QO002MBLZWONUPF4QGLTFP+TNZ+ZGZAMKTYLEQIQKYMOD6FEYNMNPVW7AMVENPL+PVPEJY8DY4L
2Z4HIFW1FLQSUCLIU0A=
-----END NEW CERTIFICATE REQUEST-----
->REQUEST A CERTIFICATE選擇 DOWNLOAD CERTIFICATE CHAIN 將產生的憑證存成 EDI-CERTNEW.P7B
->ADVANCED CERTIFICATE REQUEST.
->SUBMIT A CERTIFICATE REQUEST BY USING A BASE-64-ENCODED CMC OR PKCS #10 FILE, OR SUBMIT A RENEWAL REQUEST BY USING A BASE-64-ENCODED PKCS #7 FILE.
5.將EDI-CERTNEW.P7B 加入到EDI.KEYSTORE中:
KEYTOOL -IMPORT -ALIAS EDI-PROD(指定導入證書的別名,如果不指定,預設值為MYKEY,別名是唯一,沒指定對導入會出錯) -FILE EDI-CERTNEW.P7B -KEYSTORE ./EDI.KEYSTORE -STOREPASS 123456 -KEYPASS PASSWORD
並可查看KEYSTORE裡,應有新增一個憑證的資訊:
KEYTOOL -LIST  -V -KEYSTORE ./EDI.KEYSTORE -STOREPASS 123456
原文出處:我與小崴崴的工作日記: JAVA KEYTOOL的使用及申請憑證(以MICROSOFT ACTIVE DIRECTORY CERTIFICATE SERVICES為例)