Ⅰ 如何用Java讀取使用證書
Java為安全應用提供了豐富的API,J2SDK1.4 的JSSE (JavaTM Secure Socket Extension) 包括javax.security.certificate包,並且提供對證書的操作方法,代碼如下:
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.table.*;
importjava.security.cert.CertificateFactory;
importjava.security.cert.X509Certificate;
importjava.io.*;
{
privateStringCA_Name;
privateStringCA_ItemData[][]=newString[9][2];
privateString[]columnNames={"證書欄位標記","內容"};
publicCARead(StringCertName){
CA_Name=CertName;
/*三個Panel用來顯示證書內容*/
JTabbedPanetabbedPane=newJTabbedPane();
JPanelpanelNormal=newJPanel();
tabbedPane.addTab("普通信息",panelNormal);
JPanelpanelAll=newJPanel();
panelAll.setLayout(newBorderLayout());
tabbedPane.addTab("所有信息",panelAll);
JPanelpanelBase64=newJPanel();
panelBase64.setLayout(newBorderLayout());
tabbedPane.addTab("Base64編碼信息",panelBase64);
/*讀取證書常規信息*/
Read_Normal(panelNormal);
/*讀取證書文件字元串表示內容*/
Read_Bin(panelAll);
/*讀取證原始Base64編碼形式的證書文件*/
Read_Raw(panelBase64);
tabbedPane.setSelectedIndex(0);
setLayout(newGridLayout(1,1));
add(tabbedPane);
}
}
定義證書信息的讀取函數如下:
privateintRead_Normal(JPanelpanel){
StringField;
try{
CertificateFactorycertificate_factory=CertificateFactory.getInstance("X.509");
FileInputStreamfile_inputstream=newFileInputStream(CA_Name);
X509Certificate
x509certificate=(X509Certificate)certificate_factory.generateCertificate
(file_inputstream);
Field=x509certificate.getType();
CA_ItemData[0][0]="類型";
CA_ItemData[0][1]=Field;
Field=Integer.toString(x509certificate.getVersion());
CA_ItemData[1][0]="版本";
CA_ItemData[1][1]=Field;
Field=x509certificate.getSubjectDN().getName();
CA_ItemData[2][0]="標題";
CA_ItemData[2][1]=Field;
/*以下類似,這里省略
Field=x509certificate.getNotBefore().toString();得到開始有效日期
Field=x509certificate.getNotAfter().toString();得到截止日期
Field=x509certificate.getSerialNumber().toString(16);得到序列號
Field=x509certificate.getIssuerDN().getName();得到發行者名
Field=x509certificate.getSigAlgName();得到簽名演算法
Field=x509certificate.getPublicKey().getAlgorithm();得到公鑰演算法*/
file_inputstream.close();
finalJTabletable=newJTable(CA_ItemData,columnNames);
TableColumntc=null;
tc=table.getColumnModel().getColumn(1);
tc.setPreferredWidth(600);
panel.add(table);
}catch(Exceptionexception){
exception.printStackTrace();
return-1;
}
return0;
}
Ⅱ Java哪些證書好
軟體設計師、SUM認證、oracle認證、計算機二級java。
其中軟體設計師可以在校期間到教務處報名參加,分為上午和下午場,每門通過60分才算通過。
Ⅲ Java方面有什麼證書
SCJP相比其他的證書要好考的多,不過就是報名費太貴,你還可以去考程序員,中級程序員,高級工程師等,這些比較難考,可報名非相對比較低。
Ⅳ Java可以考哪些含金量高的證書
SCJP是提供的針對J2SE的兩項認證之一,另一個是SCJD。CJP主要考察開發人員掌握Java的基本知識和語法,包括資料庫連接、Swing、I/O、網路編程等知識。需要有扎實的基礎知識才可以順利通過。
Ⅳ 在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 &
Ⅵ win7 JAVA無法驗證證書怎麼解決
你的問題是不是"由於無法驗證發行者,所以windows已經阻止此軟體"如要安裝未簽名的activex控制項,按如下步驟:1、打開Internet Explorer---菜單欄點「工具」---Internet選項--安全---自定義級別---安全設置---「ActiveX控制項和插件下」的第5個「下載未簽名的ActiveX控制項」選擇「提示」---確定!刷新您要安裝的頁面即可(因為使用的軟體沒有通過微軟的徽標認證,在SP2中默認是不允許安裝這樣的程序的,解決方法為開始-控制面板-系統-硬體。其中在驅動程序項里有有個「驅動程序簽名」的選項,點開後。選第一項:忽略—安裝軟體,不用徵求我的意見。)2、打開Internet Explorer---菜單欄點「工具」---Internet選項--安全---自定義級別---把裡面所有禁用的全部改為啟用。3、打開Internet Explorer---菜單欄點「工具」---Internet選項---高級選項裡面選擇"允許運行和安裝軟體,即使簽名無效」4、打開Internet Explorer---菜單欄點「工具」---Internet選項--安全---受信任的站點---把該網站添加進去(注意把https改為http)
Ⅶ 在java中怎麼驗證ssl證書的有效性
JSSE是一個SSL和TLS的純Java實現,通過JSSE可以很容易地編程實現對HTTPS站點的訪問。但是,如果該站點的證書未經權威機構的驗證,JSSE將拒絕信任該證書從而不能訪問HTTPS站點。
Ⅷ 用java怎麼實現CA頒發的數字證書的認證功能
PKI 目前使用最多的非對稱演算法是 RSA。對於基於 RSA 的 PKI 而言,CA 應有一對 RSA 的公私鑰對,私鑰是 CA 的生命內,嚴格保密,而容公鑰則發布給使用方。CA 簽發一張證書的話,主要是使用 CA 的 RSA 私鑰對證書進行簽名,並將簽名結果保存在證書當中。使用者通過 CA 發布的公鑰來驗證證書中的簽名值,就可以確定該證書是否是由該 CA 簽發的。自己要做的就是從證書中提取簽名數據和用於簽名的原始數據,再使用 CA 的公鑰驗證這個簽名就可以了。
Ⅸ 什麼是Java認證
JAVA,總的來說就是編程的一種,考jave當然是需要你有過硬的JAVA功底,掌握Java語言的回特點,實現機制和體系答結構。 2. 掌握Java語言中面向對象的特性。 3. 掌握Java語言提供的數據類型和結構。 4. 掌握Java語言編程的基本技術。 5. 會編寫Java用戶界面程序。 6. 會編寫Java簡單應用程序。 7. 會編寫Java小應用程序(Applet)。 8. 了解Java的應用,搞懂這些,一定會過,JAVA認證,就是JAVA工程師證。
Ⅹ java程序利用根證書驗證X509用戶證書是否有效
樓上答主說的其實沒錯,只是描述的不太清楚。比如說有兩個X509Certificate類型的證書對象版caCert和userCert。
//獲取CA根證書中權的公鑰
PublicKey publicKey = caCert.getPublicKey();
//使用用戶證書驗證根證書的公鑰,如果驗證通過說明這個用戶證書是這個根證書簽發的,驗證不過就不是這個根證書簽發的。
userCert.verify(publicKey);