⑴ 如何從KeyStore中獲取證書鏈
這個文件的路徑用右劃線,keystoreFile="C:\ProgramFiles\Java\jdk1.6.0_02\jre\lib\security\server.keystore"
⑵ 使用keystore生成的證書怎麼查看
在命令窗口中輸入命令:keytool -list -v -keystore android.keystore
(根據上一篇講的,此時我已經將簽名證書復制到了當前項目文件下,所以命令路徑即為臨時文件android.keystore的路徑)
修改keystore的密碼,別名等
1:修改密碼的命令:keytool -storepasswd -keystore android.keystore
其中,my.keystore是復制出來的簽名證書文件,命令執行後會提示證書的當前密碼和新密碼及其確認。
2:修改別名alias的命令:keytool -changealias -keystore android.keystore -alias my_name -destalias androiddebugkey
這里,my_name是證書中當前的alias,-destalias指定的是要修改為的alias,例如我將別名改為如下:
⑶ 如何將可以keystore證書導入到jre
keytool -importcert -file my.cer -keystore mykeystore.jks -alias mycert
獲得幫助:
keytool -importcert -help
⑷ keystore怎麼生成證書和密鑰
步驟:
1.生成server端密鑰
[html] view plain
1. keytool -genkey -alias serverkey -keystore key OfServer.keystore
之後會出現如下信息,(第一次輸入密碼:打開keystore文件密碼,第二次密碼為秘鑰,一般兩次密碼相同)
根據私鑰導出服務端證書(將把證書庫 monitor.keystore中的別名為 serverkey的證書導出到KeyOfServer.cer證書文件中,它包含證書主體的信息及證書的公鑰,不包括私鑰,可以公開。)
[html] view plain
1. keytool -export -alias serverkey -keystore keyOfServer.keystore -file server.crt
將服務端證書,加入客戶端的認證證書列表中(只包含公鑰)
[html] view plain
1.keytool -import -alias serverkey -file server.crt -keystore trustOfClient.keystore
2:生成client端密鑰
[html] view plain
1. keytool -genkey -alias clientkey -keystore keyOfClient.keystore <span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
根據私鑰導出客戶端證書
[html] view plain
1. keytool -export -alias clientkey -keystore keyOfClient.keystore -file client.crt
將證書加到服務端信任列表
[html] view plain
1. keytool -import -alias serverkey -file client.crt -keystore trustOfServer.keystore
至此,客戶端和伺服器端的證書都已經生成了
⑸ Tomcat下生成keystore證書後,怎麼使用,我url+https 還是無法訪問,還需要什麼步驟么
這個文件的路徑用右劃線, keystoreFile="C:\Program Files\Java\jdk1.6.0_02\jre\lib\security\server.keystore"
⑹ 如何用已有的證書文件和私鑰文件生成keystore
首先不能使用java的類庫.除非你使用了JNI但是與其這樣,不如直接使用JAVA第二訪問https可以使用OpenSSL,keystore文件中的證書只是個密鑰.提取出來後完全可以用一般的SSL方式進行post或者get連接代碼互聯網上有的是
⑺ 如何用已有的證書文件和私鑰文件生成keystore-CSDN論壇
(1)公私鑰
使用Openssl公鑰私鑰用於外部商戶系統xxx系統間報文安全性驗證使用者需要公私鑰直接報文進行處理則參考第四部計算摘要及簽名值
1. 安裝openssl步驟直接點擊exe文件現需要安裝vs2008插件直接忽略
2. 安裝程找OpenSSL相應安裝目錄進入bin目錄找openssl.exe執行文件點擊運行別按順序輸入命令:
a. genrsa –out private-rsa.key 1024
說明:該命令沒加密私鑰
genrsa 私鑰文件私鑰存儲private-rsa.key度1024out面指定輸文件名
private-rsa.key 私鑰文件該文件必須經處理私鑰
b. req –new –x509 –key private-rsa.key –days 750 –outpublic-rsa.cer
說明:根據private-rsa.key證書public-rsa.cer
-new 表示新請求
-509 表示輸證書結構
750表示證書效數
-out public-rsa.cer -out面表示公鑰證書用於驗證數字簽名公鑰證書或者公鑰需要提前發送給需要驗證本單位或部門數據接收
c. pkcs12 –export –name test-alias –in public-rsa.cer–inkey private-rsa.key –out 99bill-rsa.pfx
說明:PKCS12 格式Keystore
密碼前輸入要緻密碼用Keystore公私鑰程用
Public-rsa.cer, private-rsa.key前
附1:
述代碼99bill-rsa.pfx獲取私鑰Java版本代碼private-rsa.key私鑰直接使用必須進行定處理
代碼幾注意點:
文件流初始化路徑需要根據自實際路徑填寫
密碼第二節c步驟密碼本實例輸入suning
KeyStorekeyStore = KeyStore.getInstance("PKCS12");
= newFileInputStream("D:/OpenSSL/bin/99bill-rsa.pfx");
char[]nPassword = "suning".toCharArray();
StringkeyAlias = null;
keyStore.load(fileInputStream,nPassword);
fileInputStream.close();
System.out.println("keystoretype=" + keyStore.getType());
Enumerationenumeration = keyStore.aliases();
if(enumeration.hasMoreElements())
{
keyAlias = (String) enumeration.nextElement();
System.out.println("alias=[" + keyAlias +"]");
}
System.out.println("iskey entry=" + keyStore.isKeyEntry(keyAlias));
PrivateKeyprikey = (PrivateKey) keyStore.getKey(keyAlias, nPassword);
//私鑰轉字元串
StringprivateStr = Base64.encodeBase64String(prikey.getEncoded()).trim();
//公鑰字元串通cer證書
Certificatecert = keyStore.getCertificate(keyAlias);
PublicKeypubkey = cert.getPublicKey();
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
注意:
1. 所用類說明:
Base64:
import org.apache.commons.net.util.Base64;
Certificate:
import java.security.cert.Certificate;
2. openssl公私鑰程用戶輸入密碼本例密碼suning
1. 摘要及
摘要程(digest全部實現述3程):
1. 根據key傳map數據排序;
2. a1=b1&a2=b2&a3=b3形式字元串排除某些字元串Key值;
3. 調用digest進行md5編碼;
三步均通Digest.digest()實現:
String digest = Digest.digest(Map map, String... keys);
傳遞http報文體body內容a1=b1&a2=b2&a3=b3形式字元串提取需要加簽字元串並轉map形式execludeKes要排除欄位字元串數組
計算摘要步關鍵選取欄位要求發送接收必須致即發送哪些欄位計算摘要同接收必須相同欄位計算摘要否則報6601錯誤
說明:a. Map存儲計算摘要欄位
b. keys表示排除欄位能用於計算摘要欄位signature,signAlgorithm
2. 公鑰證書及字元串轉換
轉換目:便於存儲(商戶直接提供公鑰證書於向驗簽系統提供公鑰字元串商戶需要用述代碼公鑰轉字元串)
1. 公鑰/私鑰字元串轉公鑰/私鑰主要字元串轉公鑰PublicKey
X509EncodedKeySpec pubKeySpec = newX509EncodedKeySpec(Base64.decodeBase64(strPubKey));
KeyFactorykeyFactory = KeyFactory.getInstance(RSA);
PublicKeypubKey = keyFactory.generatePublic(pubKeySpec);
2. 公鑰或私鑰轉Base64字元串:
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
3. 公私鑰驗證
驗證目:公私鑰需要驗證否匹配(前許商戶公私鑰混亂確定公私鑰否匹配添加驗簽系統)代碼由用戶自用junit驗證運行驗證公私鑰否確resulttrue則說明公私鑰確;否則公私鑰問題能使用
String prik1 ="";
String pubb ="";
String data ="wkk";
String digest =Digest.digest(data);
PrivateKey privateKey =RSAUtil.getPrivateKey(prik1);
String sign =RSAUtil.sign(digest, privateKey);
boolean result =RSAUtil.vertiy(digest, sign,
RSAUtil.getPublicKey(pubb));
System.out.println(result);
⑻ 如何導入.cer證書到Java keystore
Der/Cer證書導入來:
要從某個文源件中導入某個證書,使用keytool工具的-import命令:
keytool -import -file mycert.der -keystore mykeystore.jks
如果在 -keystore 選項中指定了一個並不存在的密鑰倉庫,則該密鑰倉庫將被創建。
如果不指定 -keystore 選項,則預設密鑰倉庫將是宿主目錄中名為 .keystore 的文件。如果該文件並不存在,則它將被創建。
⑼ 如何從keystore文件中取出證書和密鑰
看不懂需求,是說export嗎? http://blog.csdn.net/guo_rui22/article/details/3947716
⑽ 做javaweb項目時要把http改為https,有的說直接用keystore生成證書,有的說要買CA證書,到底哪個是正確的
你這個項目 要是自己電腦上測試就不需要,但是你要是想在放在伺服器上並且用瀏覽器訪問那就必須購買證書,然後安裝配置證書