導航:首頁 > 證書轉讓 > pfx證書java

pfx證書java

發布時間:2021-07-30 23:48:55

『壹』 java中怎麼獲取jks證書文件中的內容

JavaKeyStore的類型JKS和JCEKS是Java密鑰庫(KeyStore)的兩種比較常見類型(我所知道的共有5種,JKS,JCEKS,PKCS12,BKS,UBER)。JKS的Provider是SUN,在每個版本的JDK中都有,JCEKS的Provider是SUNJCE,1.4後我們都能夠直接使用它。JCEKS在安全級別上要比JKS強,使用的Provider是JCEKS(推薦),尤其在保護KeyStore中的私鑰上(使用TripleDes)。PKCS#12是公鑰加密標准,它規定了可包含所有私鑰、公鑰和證書。其以二進制格式存儲,也稱為PFX文件,在windows中可以直接導入到密鑰區,注意,PKCS#12的密鑰庫保護密碼同時也用於保護Key。BKS來自BouncyCastleProvider,它使用的也是TripleDES來保護密鑰庫中的Key,它能夠防止證書庫被不小心修改(Keystore的keyentry改掉1個bit都會產生錯誤),BKS能夠跟JKS互操作,讀者可以用Keytool去TryTry。UBER比較特別,當密碼是通過命令行提供的時候,它只能跟keytool交互。整個keystore是通過PBE/SHA1/Twofish加密,因此keystore能夠防止被誤改、察看以及校驗。以前,SunJDK(提供者為SUN)允許你在不提供密碼的情況下直接載入一個Keystore,類似cacerts,UBER不允許這種情況。證書導入Der/Cer證書導入:要從某個文件中導入某個證書,使用keytool工具的-import命令:1keytool-import-filemycert.der-keystoremykeystore.jks如果在-keystore選項中指定了一個並不存在的密鑰倉庫,則該密鑰倉庫將被創建。如果不指定-keystore選項,則預設密鑰倉庫將是宿主目錄中名為.keystore的文件。如果該文件並不存在,則它將被創建。創建密鑰倉庫時會要求輸入訪問口令,以後需要使用此口令來訪問。可使用-list命令來查看密鑰倉庫里的內容:1keytool-list-rfc-keystoremykeystore.jksP12格式證書導入:keytool無法直接導入PKCS12文件。第一種方法是使用IE將pfx證書導入,再導出為cert格式文件。使用上面介紹的方法將其導入到密鑰倉庫中。這樣的話倉庫裡面只包含了證書信息,沒有私鑰內容。第二種方法是將pfx文件導入到IE瀏覽器中,再導出為pfx文件。新生成的pfx不能被導入到keystore中,報錯:keytool錯誤:java.lang.Exception:所輸入的不是一個X.509認證。新生成的pfx文件可以被當作keystore使用。但會報個錯誤asunknownattr1.3.6.1.4.1.311.17.1,查了下資料,說IE導出的就會這樣,使用Netscape就不會有這個錯誤.第三種方法是將pfx文件當作一個keystore使用。但是通過微軟的證書管理控制台生成的pfx文件不能直接使用。keytool不認此格式,報keytool錯誤:java.io.IOException:。需要通過OpenSSL轉換一下:1opensslpkcs12-inmycerts.pfx-outmycerts.pem2opensslpkcs12-export-inmycerts.pem-outmykeystore.p12通過keytool的-list命令可檢查下密鑰倉庫中的內容:1keytool-rfc-list-keystoremykeystore.p12-storetypepkcs12這里需要指明倉庫類型為pkcs12,因為預設的類型為jks。這樣此密鑰倉庫就即包含證書信息也包含私鑰信息。P7B格式證書導入:keytool無法直接導入p7b文件。需要將證書鏈RootServer.p7b(包含根證書)導出為根rootca.cer和子rootcaserver.cer。將這兩個證書導入到可信任的密鑰倉庫中。1keytool-import-aliasrootca-trustcacerts-filerootca.cer-keystoretestkeytrust.jks遇到是否信任該證書提示時,輸入y1keytool-import-aliasrootcaserver-trustcacerts-filerootcaserver.cer-keystoretestkeytrust.jks總結P12格式的證書是不能使用keytool工具導入到keystore中的TheSun'sPKCS12Keystore對從IE和其他的windows程序生成的pfx格式的證書支持不太好.P7B證書鏈不能直接導入到keystore,需要將裡面的證書導出成cer格式,再分別導入到keystore。

『貳』 什麼是X509格式的證書在java中能否使用X509Certificate對象獲得證書的私鑰信息

證書里怎麼可能有私鑰嘛,異想天開

『叄』 如何導入.cer證書到Java keystore

1. 如果你想驗證你所需要的私鑰。有沒有其他的選項。 證書是有額外的屬性(國家專,...)是由證書頒發機構garants的附加屬屬性為true簽名的公鑰。
CER文件證書和沒有私鑰。私鑰設置有。PFX密鑰庫正常文件。 如果你真的是驗證你已經導入了私鑰。
你通常可以導入。與任何問題的CER證書 密鑰工具-importcert文件certificate.cer-密鑰庫的keystore.jks別名「別名」
2. 你已經有了該證書可能是伺服器的證書,或簽名伺服器的證書。你會需要它,使您的Web服務客戶端端可以驗證伺服器。 但是,如果你還需要使用SSL進行客戶端端身份驗證,那麼你需要讓自己的證書,來驗證您的Web服務客戶端端。
為此 CodeGo.net,您需要創建一個證書請求,這個過程涉及到創建自己的私有密鑰,以及相應的公開密鑰,以及安裝隨著(電子郵件,網站等)的公共密鑰這就是所謂的證書請求文件。

『肆』 Java如何讀取PFX密鑰文件

package com.Jinhill;
import java.io.*;
import java.util.*;
import java.security.*;
import java.security.cert.Certificate;

public class ReadPFX {
public ReadPFX (){
}
//轉換成十六進制字元串
public static String Byte2String(byte[] b) {
String hs="";
String stmp="";

for (int n=0;n<b.length;n++) {
stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
else hs=hs+stmp;
//if (n<b.length-1) hs=hs+":";
}
return hs.toUpperCase();
}

public static byte[] StringToByte(int number) {
int temp = number;
byte[] b=new byte[4];
for (int i=b.length-1;i>-1;i--){
b[i] = new Integer(temp&0xff).byteValue();//將最高位保存在最低位
temp = temp >> 8; //向右移8位
}
return b;
}
private PrivateKey GetPvkformPfx(String strPfx, String strPassword){
try {
KeyStore ks = KeyStore.getInstance("PKCS12");
FileInputStream fis = new FileInputStream(strPfx);
// If the keystore password is empty(""), then we have to set
// to null, otherwise it won't work!!!
char[] nPassword = null;
if ((strPassword == null) || strPassword.trim().equals("")){
nPassword = null;
}
else
{
nPassword = strPassword.toCharArray();
}
ks.load(fis, nPassword);
fis.close();
System.out.println("keystore type=" + ks.getType());
// Now we loop all the aliases, we need the alias to get keys.
// It seems that this value is the "Friendly name" field in the
// detals tab <-- Certificate window <-- view <-- Certificate
// Button <-- Content tab <-- Internet Options <-- Tools menu
// In MS IE 6.
Enumeration enumas = ks.aliases();
String keyAlias = null;
if (enumas.hasMoreElements())// we are readin just one certificate.
{
keyAlias = (String)enumas.nextElement();
System.out.println("alias=[" + keyAlias + "]");
}
// Now once we know the alias, we could get the keys.
System.out.println("is key entry=" + ks.isKeyEntry(keyAlias));
PrivateKey prikey = (PrivateKey) ks.getKey(keyAlias, nPassword);
Certificate cert = ks.getCertificate(keyAlias);
PublicKey pubkey = cert.getPublicKey();
System.out.println("cert class = " + cert.getClass().getName());
System.out.println("cert = " + cert);
System.out.println("public key = " + pubkey);
System.out.println("private key = " + prikey);
return prikey;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
}

『伍』 java客戶端怎麼訪問帶有pfx格式證書的https網站(伺服器)呢,

使用 訪問https地址。
以下是導入JKS證書的方式,可以參考。

String keystorefile = "file";
String keystorepw = "password";
String keypw = "password";

KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load( new FileInputStream(keystorefile), keystorepw.toCharArray());
KeyManagerFactory keymanagerfactory = KeyManagerFactory.getInstance("SunX509");
keymanagerfactory.init(keystore, keypw.toCharArray());
KeyManager akeymanager[] = keymanagerfactory.getKeyManagers();
TrustManagerFactory trustmanagerfactory = TrustManagerFactory.getInstance("SunX509");
trustmanagerfactory.init(keystore);
TrustManager atrustmanager[] = trustmanagerfactory.getTrustManagers();
sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(akeymanager, atrustmanager, null);
sslSocketFactory = sslcontext.getSocketFactory();

String url = "asdfdf";
URL testURL = new URL(url);
HttpURLConnection urlConnection = (HttpURLConnection) testURL.openConnection();
if (urlConnection instanceof HttpsURLConnection) {
HttpsURLConnection conn = (HttpsURLConnection) urlConnection;
conn.setSSLSocketFactory(sslSocketFactory);
}

『陸』 如何在Java處理PFX格式證書

開發人員通常需要將PFX文件轉換為某些不同的格式,如PEM或JKS,以便可以為使用SSL通信的獨立Java客戶端或WebLogic Server使用
在Security編程中,有幾種典型的密碼交換信息文件格式:
DER-encoded certificate: .cer, .crt
PEM-encoded message: .pem
PKCS#12 Personal Information Exchange: .pfx, .p12
PKCS#10 Certification Request: .p10
PKCS#7 cert request response: .p7r
PKCS#7 binary message: .p7b

『柒』 java如何生成.pfx文件java語言可以生成pfx文件嗎

/**
* 證書私鑰存儲設施
*
* @param alias
* KeyStore別名
* @param key
* 密鑰(這里是私鑰)
* @param password
* 保存密碼
* @param chain
* 證書鏈
* @param filePath
* PFX文件路徑
* @throws KeyStoreException
* @throws NoSuchAlgorithmException
* @throws CertificateException
* @throws IOException
*/
private void createKeyStore(String alias, Key key, char[] password,
Certificate[] chain, String filePath) throws KeyStoreException,
NoSuchAlgorithmException, CertificateException, IOException {
KeyStore keyStore = KeyStore.getInstance("pkcs12");
keyStore.load(null, password);
keyStore.setKeyEntry(alias, key, password, chain);
FileOutputStream fos = new FileOutputStream(filePath);
keyStore.store(fos, password);
fos.close();
}

『捌』 如何在java創建證書PFX文件嗎

開發人員通常需要將PFX文件轉換為某些不同的格式,如PEM或JKS,以便可以為使用版SSL通信的獨立Java客戶端或權WebLogic Server使用
在Security編程中,有幾種典型的密碼交換信息文件格式:
DER-encoded certificate: .cer, .crt
PEM-encoded message: .pem
PKCS#12 Personal Information Exchange: .pfx, .p12
PKCS#10 Certification Request: .p10
PKCS#7 cert request response: .p7r
PKCS#7 binary message: .p7b

『玖』 php實現簽名,手頭上有中行提供的pfx文件,進行簽名後傳遞給java做簽名驗證,請大神幫忙。

你的問題我做過,我使用是第二個方法實現的,我把相關文檔傳到了csdn上去了,你可以去看看,實在不行我發給你

『拾』 cer 與 pfx 證書的加密與解密

JAVA不能直接使用pfx證書的,需要去java網站上下一個keytools工具,導入pfx證書後才能使用版。

cer和pfx是成對的,你做了個權cer的話必然會同時生成一個pfx,不曉得你的cer是怎麼做的。

一般來說是這樣的,你先用一些工具,比如剛才說的java的keytools,或者IIS生成一個密鑰請求crs,然後把這個crs發送給密鑰發放的CA,你可以自己搭一個CA或者去買一個,CA會再發給你一個確認後的證書,你再使用這個確認後的cer來結束證書申請過程,最終得到一個私鑰和一個密鑰。
具體的過程參考這里:怎麼申請怎麼使用都包含了
http://www.cnnic.cn/jczyfw/wzws/bzkx/jsjs/
你是JAVA開發的話可以看看tomcat或者apach的,這里用的CA是CNNIC的,不過別家的也都大同小異。

閱讀全文

與pfx證書java相關的資料

熱點內容
麻城工商局領導成員 瀏覽:52
鄉級公共衛生服務績效考核方案 瀏覽:310
樂聚投訴 瀏覽:523
輪子什麼時候發明 瀏覽:151
馬鞍山陶世宏 瀏覽:16
馬鞍山茂 瀏覽:5
通遼工商局咨詢電話 瀏覽:304
誰發明的糍粑 瀏覽:430
國家公共文化服務示範區 瀏覽:646
pdf設置有效期 瀏覽:634
廣告詞版權登記 瀏覽:796
基本公共衛生服務考核方案 瀏覽:660
公共服務平台建設領導小組 瀏覽:165
人類創造了那些機器人 瀏覽:933
公共文化服務保障法何時實施 瀏覽:169
遼寧育嬰師證書領取 瀏覽:735
劃撥土地使用權轉讓能轉讓嗎 瀏覽:97
2019年公需科目知識產權考試答案 瀏覽:256
關於知識產權管理辦法 瀏覽:331
公共衛生服務培訓筆記 瀏覽:532