A. 如何用java調用Openssl生成一個數字證書
openssl genrsa -des3 -out server.key 1024運行時會提示輸入密碼,此密碼用於加密key文件(參數咐氏des3便是早擾指加密演算法,當然也可以選用其他你認為安全的演算法.),以後每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果覺得不衡睜散方便,也可以..
B. 審核該怎麼用java實現,我用的是struts1.做的是數字證書的審核
1.許可權的設置:審核人員看不到操作模塊;操作人員看不到審核模塊
2.記錄表中應該有一個狀態的欄位:操作人員錄入信息後該條記錄應該彎困拆為埋棗待審核(或者是提交審核)狀態,(如果輸入了二級密碼,狀態直接為審核通過);審核模塊中直接查詢狀態為待審核(或提交審核)的記錄,同意後更新該記錄的狀態為審核通過;
3.你至少需要以下幾個action:
①操作員提交數據的action(包括修改,可以公用這個action)
②審核員查詢數據的action
③審核員更新記錄狀態的action
(這里沒尺隱考慮許可權的問題,如果考慮許可權問題,你的工作量還有很多很多)
C. 如何利用keytool工具生成數字證書
方法/步驟
查看JDK1.6是否安裝,出現如下界面說明JDK已經安裝
執行「keytool -genkey -alias test -keyalg RSA -keysize 1024 -keystore test.jks -validity 365」,彈出如下界面
設置JKS的密碼為「123456」後,出現如下界面:
輸入「名字」、「單位名稱」、「組織名稱」、「所在的城市」、「省份」以及「國家」,系統會提示主題名稱是否正確,並設置JKS的主密碼
利用"keytool -list -v -keystore test.jks"查看JKS中生成的證書的詳細信息
利用「keytool -alias test -exportcert -keystore test.jks -file test.cer」,導出證書,並可以雙擊打開證書查看證書信息
D. 有誰知道java怎麼實現彈出瀏覽器中的證書選擇框嗎
瀏覽器是按根據 subject 來查找證書的,你也這樣就好了。
比如對於一個網站來說,就是找證書中對應到這個網站的條目,每個證書裡面有一個 subject, CN 條目,按照 CN 對比就能找到證書。而用 Java 讀取 IE 瀏覽器的證書存儲則是 API 的事情,不是我們自己讀取的,JDK 6 開始自帶了這個 IE 的 KeyStore 讀取方法。比如下面這個代碼,我的電腦上的 Windows 證書存儲中一共有3個 Alipay 支付寶數字證書,它們的客戶號都是我的支付寶,我們可以讀取所有的條目比較它的 CN 後都列出來放在 Combox 下拉框中,讓用戶選擇,不過似乎 Java 不能在通信過程中停下來讓我們選擇一個證書啊?你的問題是指不知道如何讓程序自動匹配其中一個證書?
//這個方法讀取Windows操作系統的證書存儲中"根證書列表「,
//似乎」個人「證書是"Windows-My",還有其它的我不知道,你可以猜測嘛。
KeyStoreks=KeyStore.getInstance("Windows-ROOT","SunMSCAPI");
ks.load(null,null);
for(Enumerationiter=ks.aliases();iter.hasMoreElements();){
Stringalias=(String)iter.nextElement();
Certificatecert=ks.getCertificate(alias);
System.out.println("Cert:"+cert.getType()+"/"+cert.getPublicKey());
}
E. 如何獲取數字證書(x509Certificate)中的指紋演算法
創建X509證書方法較多,在Windows 環境下大致總結了幾中辦法,
1) 通過CA獲取證書,
2) 通過微軟提供的makecert 工具得到測試證書
3) 編程的方法創建,.Net提供了 X509Certificate2 類,該類可以用於創建證書,但只能從RawData中創建,創建後無法修改除FriendlyName以外的任何屬性。
我在互聯網上找了很久,始終沒有找到完全通過程序創建自定義的證書的方法。後來想了一個折中辦法,就是用程序調用 makecert.exe 先生成一個證書,證書的一些參數如Subject,有效期,序列號等可以通過參數傳入,然後把生成的證書文件讀到Rawdata中,得到X509Certificate2 類型的證書對象。當然這種方法確實比較笨,必須要依賴外部進程。等後面有時間的話,我還是想按照X509 V3 標准,自己創建RawData,然後生成證書,這樣應該是比較靈活的做法。不知道網友們有沒有什麼更好的方法來創建一個自定義的證書。
通過 makecert.exe 創建X509證書的代碼如下,供大家參考
static object semObj = new object();
/// <summary>
/// 自定義的證書信息
/// </summary>
public class T_CertInfo
{
public String FriendlyName;
public String Subject;
public DateTime BeginDate;
public DateTime EndDate;
public int SerialNumber;
}
/// <summary>
/// 生成X509證書
/// </summary>
/// <param name="makecrtPath">makecert進程的目錄</param>
/// <param name="crtPath">證書文件臨時目錄</param>
/// <param name="certInfo">證書信息</param>
/// <returns></returns>
public static X509Certificate2 CreateCertificate(String makecrtPath, String crtPath,
T_CertInfo certInfo)
{
Debug.Assert(certInfo != null);
Debug.Assert(certInfo.Subject != null);
string MakeCert = makecrtPath + "makecert.exe";
string fileName = crtPath + "cer";
string userName = Guid.NewGuid().ToString();
StringBuilder arguments = new StringBuilder();
arguments.AppendFormat("-r -n \"{0}\" -ss my -sr currentuser -sky exchange ",
certInfo.Subject);
if (certInfo.SerialNumber > 0)
{
arguments.AppendFormat("-# {0} ", certInfo.SerialNumber);
}
arguments.AppendFormat("-b {0} ", certInfo.BeginDate.ToString(@"MM\/dd\/yyyy"));
arguments.AppendFormat("-e {0} ", certInfo.EndDate.ToString(@"MM\/dd\/yyyy"));
arguments.AppendFormat("\"{0}\"", fileName);
F. 使用Java程序簽發數字證書, FileInputStream in2=new FileInputStream(new File( args[0]));總報錯!!
文件不存在,
先建立一個空白的文件試試
G. 如何通過java程序來載入客戶端證書進行ssl連接
用WS-Security對.NET 和 Java之間的Web服務請求進行簽發到底為了對Web服務請求進行簽發可以保證消息內容在傳輸期間沒有被修改。 使用數字證書,可以用一個私鑰對Web服務進行簽發,這樣只能用相應的公鑰對消息進行校驗。
到目前為止,Web服務的安全策略有兩種選擇: 一種是在傳輸層(使用 SSL),另一種是在應用層,使用自定製的安全機制。 這兩種方法雖然技術上有效,在採用時均有一些限制與缺點。
在傳輸層使用SSL而獲得的安全性是通過對底層的傳輸層(HTTP)進行安全化而確保Web服務請求的完整性。. SSL 既可以用於加密鏈接,也可以用於使用證書來校驗客戶端和伺服器。
使用SSL來保護Web服務的一個主要問題之一就是其安全性只在一個單獨的節點到另一個節點之間有效。 由於SSL通信是基於傳輸層,一旦到達終端節點,這種保護消息的方法就不再有效了。. 例如,我從Client A 向 Server B發送一個消息,並使用SSL來保護鏈接。 然而,如果我從Client A 向 Server C發送一條信息,並且必須經過Server B,這時就沒有容易的辦法來確保使用SSL通過這一媒介的傳輸消息的安全性。
也可以開發一種自定製的安全機制,將消息的內容和消息頭在客戶端進行簽發,並在伺服器端進行校驗。 這種辦法可以克服傳輸安全問題,但最終這將是一種自定製的解決方案。. 如果一個組織希望保護發布到其它組織的Web服務,則他必須確保另一終端節點也使用了相同的技術。
WS-Security 通過提供一種基於應用層的Web服務簽發方式來解決這兩個問題(避免在傳輸層進行安全化時遇到的安全問題),它使用了一個已經公布的標准,可以由客戶、系統集成商和銷售商參考和採用。
為了幫助推動這一標准,本文將演示一系列兩個WS-Security實現之間進行Web簽發的示例: 一個位於 Microsoft .NET, 基於 Microsoft Web Services Enhancements (WSE) 1.0, 另一個基於GLUE Professional 4.0.1。
H. java生成數字證書以及驗證數字證書的問題
數字證書有很多種,如果X509,
事實上,java.security 可以完成的。先掌握概念,做起來並不難。也可以網路得到。
I. 用java怎麼實現CA頒發的數字證書的認證功能
PKI 目前使用最多的非對稱演算法是 RSA。對於基於 RSA 的 PKI 而言,CA 應有一對 RSA 的公私鑰對,私鑰是回 CA 的生命,答嚴格保密,而公鑰則發布給使用方。CA 簽發一張證書的話,主要是使用 CA 的 RSA 私鑰對證書進行簽名,並將簽名結果保存在證書當中。使用者通過 CA 發布的公鑰來驗證證書中的簽名值,就可以確定該證書是否是由該 CA 簽發的。自己要做的就是從證書中提取簽名數據和用於簽名的原始數據,再使用 CA 的公鑰驗證這個簽名就可以了。
J. 1,java生成數字證書為什麼會出現下圖情況我先說一下我是怎麼做的。請高手指點
你配置的是單向SSL,tomcat不會對用戶身份作出驗證。只是在tomcat和瀏覽器之間建立了SSL通道。身份驗證部分還得自己寫。