⑴ java中 用到.cer的安全證書,如何通過openssl來生成這個證書
openssl貌似 linux系統里用的多, 也可以用java的keytool生成,jdk自帶的.
⑵ 在java中使用安全證書的問題
在項目開發中,有時會遇到與SSL安全證書導入打交道的,如何把證書導入java中的cacerts證書庫呢?
其實很簡單,方法如下:
每一步:進入某個https://www.xxx.com開頭的網站,把要導入的證書下載過來,
在該網頁上右鍵 >> 屬性>> 點擊"證書">>
再點擊上面的"詳細信息"切換欄 >>
再點擊右下角那個"復制到文件"的按鈕
就會彈出一個證書導出的向導對話框,按提示一步一步完成就行了。
例如:保存為abc.cer,放在C盤下
第二步:如何把上面那步的(abc.cer)這個證書導入java中的cacerts證書庫里?
方法如下
假設你的jdk安裝在C:\jdk1.5這個目錄,
開始 >> 運行>> 輸入cmd 進入dos命令行>>
再用cd進入到C:\jdk1.5\jre\lib\security這個目錄下
敲入如下命令回車執行
keytool -import -alias cacerts -keystore cacerts -file d:\software\AKAZAM-Mail.cer
此時命令行會提示你輸入cacerts證書庫的密碼,
你敲入changeit就行了,這是java中cacerts證書庫的默認密碼,
你自已也可以修改的。
導入後用-list查看(沒有使用-alias指定別名,所以是mykey),其中md5會和證書的md5對應上。
mykey, 2012-10-26, trustedCertEntry,
認證指紋 (MD5): 8D:A2:89:9A:E4:17:07:0B:BD:B0:0C:36:11:39:D0:3D
ok,大功告成!
以後更新時,先刪除原來的證書,然後導入新的證書
keytool -list -keystore cacerts
keytool -delete -alias akazam_email -keystore cacerts
keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts
自定義文件和密碼路徑,還沒有驗證:
Define the TrustStore using the JAVA_OPTS variable on the Stash Server:
You will have to do the following:
On Windows:
JAVA_OPTS = -Djavax.net.ssl.trustStore="%JAVA_HOME%\jre\lib\security\cacerts" -Djavax.net.ssl.trustStorePassword="changeit"
On Linux:
JAVA_OPTS = -Djavax.net.ssl.trustStore="$JAVA_HOME/jre/lib/security/cacerts" -Djavax.net.ssl.trustStorePassword="changeit"
(info) On my local instance trustStore password is changeit so I belive, if you didn´t changed it, your is changeit as well.
tomcat、junit運行時會從默認路徑載入cacerts文件,如果main函數直接運行需要指定javax.net.ssl.trustStore文件路徑,比如:
java -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -jar XXX.jar &
⑶ java,已知加密字元串,怎麼生成cer文件求代碼
packagecom.tgtbj.dsf.certhelper;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.math.BigInteger;
importjava.security.KeyPair;
importjava.security.KeyPairGenerator;
importjava.security.KeyStore;
importjava.security.cert.Certificate;
importjava.security.cert.CertificateEncodingException;
importjava.security.cert.X509Certificate;
importjava.util.Date;
importjavax.security.auth.x500.X500Principal;
importorg.bouncycastle.x509.X509V3CertificateGenerator;
publicclassTT{
publicstaticvoidgenCertFile(StringcertPath,Stringpassword,
intkeysize,Stringalgorithm)throwsException{
//創建KeyStore
KeyStorestore=KeyStore.getInstance("PKCS12");
store.load(null,null);
//生成一對公私鑰,這部分如果自己已經有了PublicKey,可以直接在下面使用,不用生成
KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA");
kpg.initialize(keysize);
KeyPairkeyPair=kpg.generateKeyPair();
//這個字元串根據自己情況填
Stringissuer="C=CN,ST=BJ,L=BJ,O=SSS,OU=SC,CN=SSS";
Stringsubject=issuer;
=newX509V3CertificateGenerator();
certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));
certGen.setIssuerDN(newX500Principal(issuer));
certGen.setNotBefore(newDate(System.currentTimeMillis()-10*365
*24*60*60*1000));
certGen.setNotAfter(newDate(System.currentTimeMillis()+10*365*24
*60*60*1000));
certGen.setSubjectDN(newX500Principal(subject));
certGen.setPublicKey(keyPair.getPublic());//此處可直接傳入線程的PublicKey
if(algorithm==null||algorithm.equals("")){
certGen.setSignatureAlgorithm("SHA256WithRSAEncryption");
}else{
certGen.setSignatureAlgorithm(algorithm);
}
X509Certificatecert=certGen.generateX509Certificate(keyPair
.getPrivate());
//私鑰有現成的也可直接傳入
store.setKeyEntry("alias",keyPair.getPrivate(),
password.toCharArray(),newCertificate[]{cert});
//導出為cer證書
try{
FileOutputStreamfos=newFileOutputStream(certPath+".cer");
fos.write(cert.getEncoded());
fos.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(CertificateEncodingExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(Stringargs[])throwsException{
genCertFile("D:/opop1","qwafrt",1024,"SHA1WithRSA");
}
}
⑷ 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的,不過別家的也都大同小異。
⑸ 證書中的jks、pfx和cer後綴都是什麼文件
jks是JAVA的keytools證書工具支持的證書私鑰格式。
pfx是微軟支持的私鑰格式。
cer是證書的公鑰。
如果是你私人要備份證書的話記得一定要備份成jks或者pfx格式,否則恢復不了。
簡單來說,cer就是你們家郵箱的地址,你可以把這個地址給很多人讓他們往裡面發信。
pfx或jks就是你家郵箱的鑰匙,別人有了這個就可以冒充你去你家郵箱看信,你丟了這個也沒法開郵箱了。
⑹ 如何把安全證書導入到java中
在該網頁上右鍵 >> 屬性 >> 點擊"證書" >>
再點擊上面的"詳細信息"切換欄 >>
再點擊右下角那個"復制到文件"的按鈕
就會彈出一個證書導出的向導對話框,按提示一步一步完成就行了。
例如:保存為abc.cer,放在C盤下
第二步:如何把上面那步的(abc.cer)這個證書導入java中的cacerts證書庫里?
方法如下
假設你的jdk安裝在C:\jdk1.5這個目錄,
開始 >> 運行 >> 輸入cmd 進入dos命令行 >>
再用cd進入到C:\jdk1.5\jre\lib\security這個目錄下
敲入如下命令回車執行
keytool -import -alias cacerts -keystore cacerts -file d:\software\
⑺ 如何把安全證書導入到java中的cacerts證書庫
把安全證書導入到java中的cacerts證書庫步驟:
1、先下載證書,然後使用命令導入
已經完成了證書的導入。
⑻ 如何導入.cer證書到Java keystore
1. 如果你想驗證你所需要的私鑰。有沒有其他的選項。 證書是有額外的屬性(國家,...)是由證書頒發機構garants的附加屬性為true簽名的公鑰。
CER文件證書和沒有私鑰。私鑰設置有。PFX密鑰庫正常文件。 如果你真的是驗證你已經導入了私鑰。
你通常可以導入。與任何問題的CER證書 密鑰工具-importcert文件certificate.cer-密鑰庫的keystore.jks別名「別名」
2. 你已經有了該證書可能是伺服器的證書,或簽名伺服器的證書。你會需要它,使您的Web服務客戶端端可以驗證伺服器。 但是,如果你還需要使用SSL進行客戶端端身份驗證,那麼你需要讓自己的證書,來驗證您的Web服務客戶端端。
為此 CodeGo.net,您需要創建一個證書請求,這個過程涉及到創建自己的私有密鑰,以及相應的公開密鑰,以及安裝隨著(電子郵件,網站等)的公共密鑰這就是所謂的證書請求文件。
⑼ 如何編一個Java應用讀取XP數字證書庫中的cer證書中的信息
這么復雜,還沒有分兒。。。幫你頂。關於開發就幫不上你了。
⑽ 如何把安全證書導入/刪除 java中的cacerts證書庫
每一步:進入某個開頭的網站,把要導入的證書下載過來,
在該網頁上右鍵 >> 屬性 >> 點擊"證書" >>
再點擊上面的"詳細信息"切換欄 >>
再點擊右下角那個"復制到文件"的按鈕
就會彈出一個證書導出的向導對話框,按提示一步一步完成就行了。
例如:保存為abc.cer,放在C盤下
第二步:如何把上面那步的(abc.cer)這個證書導入java中的cacerts證書庫里?
方法如下
假設你的jdk安裝在C:\jdk1.5這個目錄,
開始 >> 運行 >> 輸入cmd 進入dos命令行 >>
再用cd進入到C:\jdk1.5\jre\lib\security這個目錄下
敲入如下命令回車執行
keytool -import -alias cacerts -keystore cacerts -file d:\software\AKAZAM-Mail.cer -trustcacerts
此時命令行會提示你輸入cacerts證書庫的密碼,
你敲入changeit就行了,這是java中cacerts證書庫的默認密碼,
你自已也可以修改的。
ok,大功告成!
以後更新時,先刪除原來的證書,然後導入新的證書
keytool -list -keystore cacerts
keytool -delete -alias akazam_email -keystore cacerts
keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts -trustcacerts