您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“JAVA Keytool工具怎么生成Keystore和Truststore文件”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“JAVA Keytool工具怎么生成Keystore和Truststore文件”吧!
Keystore可以存放除了證書(shū)、公鑰外其它敏感信息,比如密碼、私鑰……證書(shū)可以是關(guān)聯(lián)的證書(shū)或者一個(gè)證書(shū)鏈。證書(shū)鏈有客戶端證書(shū)和一個(gè)或多個(gè)CA證書(shū)。
Truststore僅僅包含客戶端信任的證書(shū)、公鑰。它無(wú)法存放敏感信息。
keytool -genkeypair -alias certificatekey -keyalg RSA -validity 7 -keystore keystore.jks
上述命令執(zhí)行后,我們需要輸入文件加密密碼、相關(guān)個(gè)人信息以及秘鑰口令(秘鑰口令可以與文件加密密碼一致)。樣例輸出如下:
輸入密鑰庫(kù)口令: 再次輸入新口令: 您的名字與姓氏是什么? [Unknown]: chris 您的組織單位名稱是什么? [Unknown]: free 您的組織名稱是什么? [Unknown]: free 您所在的城市或區(qū)域名稱是什么? [Unknown]: city 您所在的省/市/自治區(qū)名稱是什么? [Unknown]: city 該單位的雙字母國(guó)家/地區(qū)代碼是什么? [Unknown]: cn CN=chris, OU=free, O=free, L=city, ST=city, C=cn是否正確? [否]: y 輸入 <certificatekey> 的密鑰口令 (如果和密鑰庫(kù)口令相同, 按回車): 再次輸入新口令: Warning: JKS 密鑰庫(kù)使用專用格式。建議使用 "keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12" 遷移到行業(yè)標(biāo)準(zhǔn)格式 PKCS12。
keytool -list -v -keystore keystore.jks
上述命令執(zhí)行后,我們需要輸入之前設(shè)定的文件加密密碼。校驗(yàn)成功后,命令會(huì)展示出keystore文件的內(nèi)容,樣例輸出如下:
輸入密鑰庫(kù)口令: 密鑰庫(kù)類型: jks 密鑰庫(kù)提供方: SUN 您的密鑰庫(kù)包含 1 個(gè)條目 別名: certificatekey 創(chuàng)建日期: 2019-11-21 條目類型: PrivateKeyEntry 證書(shū)鏈長(zhǎng)度: 1 證書(shū)[1]: 所有者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn 發(fā)布者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn 序列號(hào): 2b57a2eb 有效期為 Thu Nov 21 14:17:26 CST 2019 至 Thu Nov 28 14:17:26 CST 2019 證書(shū)指紋: MD5: 1F:FE:8E:D1:70:98:13:B8:06:2A:FB:7A:A6:88:D8:C4 SHA1: 87:71:6B:37:16:0D:78:4A:48:53:70:6F:6D:ED:0C:81:5C:6D:D0:09 SHA256: 05:06:9A:CC:69:18:C6:D1:45:FA:4C:59:38:70:69:FC:6B:4B:B2:C8:BF:9B:0A:11:9E:FA:2E:DE:48:C9:38:29 簽名算法名稱: SHA256withRSA 主體公共密鑰算法: 2048 位 RSA 密鑰 版本: 3 擴(kuò)展: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 80 05 7D……
keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer
上述命令導(dǎo)出證書(shū)到文件selfsignedcert.cer中,命令執(zhí)行時(shí),需要輸入keystore文件加密密碼。樣例輸出結(jié)果如下:
輸入密鑰庫(kù)口令: 存儲(chǔ)在文件 <selfsignedcert.cer> 中的證書(shū)
keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore.jks
上述命令執(zhí)行時(shí),要求輸入truststore文件加密密碼。命令執(zhí)行成功后,證書(shū)selfsignedcert.cer被增加到了truststore.jks文件中。樣例輸出如下:
輸入密鑰庫(kù)口令: 再次輸入新口令: 所有者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn 發(fā)布者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn 序列號(hào): 2b57a2eb 有效期為 Thu Nov 21 14:17:26 CST 2019 至 Thu Nov 28 14:17:26 CST 2019 證書(shū)指紋: MD5: 1F:FE:8E:D1:70:98:13:B8:06:2A:FB:7A:A6:88:D8:C4 SHA1: 87:71:6B:37:16:0D:78:4A:48:53:70:6F:6D:ED:0C:81:5C:6D:D0:09 SHA256: 05:06:9A:CC:69:18:C6:D1:45:FA:4C:59:38:70:69:FC:6B:4B:B2:C8:BF:9B:0A:11:9E:FA:2E:DE:48:C9:38:29 簽名算法名稱: SHA256withRSA 主體公共密鑰算法: 2048 位 RSA 密鑰 版本: 3 擴(kuò)展: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 80 05 7D 67 5E 18 89 4F 95 E8 60 41 B3 C4 6C 8D ...g^..O..`A..l. 0010: 38 90 8E 0B 8... ] ] 是否信任此證書(shū)? [否]: y 證書(shū)已添加到密鑰庫(kù)中
keytool -list -v -keystore truststore.jks
上述命令執(zhí)行時(shí),要求輸入truststore加密密碼。之后會(huì)展示truststore的相關(guān)內(nèi)容,樣例輸出如下:
輸入密鑰庫(kù)口令: 密鑰庫(kù)類型: jks 密鑰庫(kù)提供方: SUN 您的密鑰庫(kù)包含 1 個(gè)條目 別名: certificatekey 創(chuàng)建日期: 2019-11-21 條目類型: trustedCertEntry 所有者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn 發(fā)布者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn 序列號(hào): 2b57a2eb 有效期為 Thu Nov 21 14:17:26 CST 2019 至 Thu Nov 28 14:17:26 CST 2019 證書(shū)指紋: MD5: 1F:FE:8E:D1:70:98:13:B8:06:2A:FB:7A:A6:88:D8:C4 SHA1: 87:71:6B:37:16:0D:78:4A:48:53:70:6F:6D:ED:0C:81:5C:6D:D0:09 SHA256: 05:06:9A:CC:69:18:C6:D1:45:FA:4C:59:38:70:69:FC:6B:4B:B2:C8:BF:9B:0A:11:9E:FA:2E:DE:48:C9:38:29 簽名算法名稱: SHA256withRSA 主體公共密鑰算法: 2048 位 RSA 密鑰 版本: 3 擴(kuò)展: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 80 05 7D 67 5E 18 89 4F 95 E8 60 41 B3 C4 6C 8D ...g^..O..`A..l. 0010: 38 90 8E 0B 8... ] ]
-Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=****** -Djavax.net.ssl.trustStore=truststore.jks -Djavax.net.ssl.trustStorePassword=******
上面的所有參數(shù)均為JVM啟動(dòng)參數(shù),設(shè)置keystore和truststore屬性。其中keystore與truststore屬性均為文件的具體路徑。如果沒(méi)有顯示指定上述屬性,那么JVM默認(rèn)使用$JAVA_HOME/lib/security/cacerts文件作為truststore,并讀取其中的授信證書(shū)(默認(rèn)密碼為changeit)。
到此,相信大家對(duì)“JAVA Keytool工具怎么生成Keystore和Truststore文件”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。