❶ 在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認證
JAVA,總的來說就是編程的一種,考jave當然是需要你有過硬的JAVA功底,掌握Java語言的回特點,實現機制和體系答結構。 2. 掌握Java語言中面向對象的特性。 3. 掌握Java語言提供的數據類型和結構。 4. 掌握Java語言編程的基本技術。 5. 會編寫Java用戶界面程序。 6. 會編寫Java簡單應用程序。 7. 會編寫Java小應用程序(Applet)。 8. 了解Java的應用,搞懂這些,一定會過,JAVA認證,就是JAVA工程師證。
❸ 在java中怎麼驗證ssl證書的有效性
JSSE是一個SSL和TLS的純Java實現,通過JSSE可以很容易地編程實現對HTTPS站點的訪問。但是,如果該站點的證書未經權威機構的驗證,JSSE將拒絕信任該證書從而不能訪問HTTPS站點。
❹ java程序利用根證書驗證X509用戶證書是否有效
樓上答主說的其實沒錯,只是描述的不太清楚。比如說有兩個X509Certificate類型的證書對象版caCert和userCert。
//獲取CA根證書中權的公鑰
PublicKey publicKey = caCert.getPublicKey();
//使用用戶證書驗證根證書的公鑰,如果驗證通過說明這個用戶證書是這個根證書簽發的,驗證不過就不是這個根證書簽發的。
userCert.verify(publicKey);
❺ 用java怎麼實現CA頒發的數字證書的認證功能
PKI 目前使用最多的非對稱演算法是 RSA。對於基於 RSA 的 PKI 而言,CA 應有一對 RSA 的公私鑰對,私鑰是 CA 的生命內,嚴格保密,而容公鑰則發布給使用方。CA 簽發一張證書的話,主要是使用 CA 的 RSA 私鑰對證書進行簽名,並將簽名結果保存在證書當中。使用者通過 CA 發布的公鑰來驗證證書中的簽名值,就可以確定該證書是否是由該 CA 簽發的。自己要做的就是從證書中提取簽名數據和用於簽名的原始數據,再使用 CA 的公鑰驗證這個簽名就可以了。
❻ java認證
我真想跟你說證沒用,有用的你也考不下來,我也是培訓出來的,培訓學的那點東西我也了解,憑這個想考證太難了,有當初SUN的SCJP證書,甲骨文的OCA和OCP,或者系統架構師認證,這些你都想都別想了,你是培訓的J2EE方向吧,踏踏實實搞好常用框架以及JAVA基礎吧,面試的時候沒人問你有沒有證,也知道你沒有,也都知道你技術大概是什麼樣子,你就好好學學基礎+框架,應付工作足矣,想考證,等真正算是JAVA工程師以後再說吧
❼ java無法驗證證書
為了排除任何第三方程序沖突的可能性,我們需要將電腦處在干凈的啟動動態,並進行檢查問題是否依然存在。
幫助解決錯誤消息和其他問題,您可以通過使用最少的一組驅動程序和啟動程序來啟動計算機。干凈啟動可以幫助消除軟體沖突。
請瀏覽:如何在Windows系統使用干凈啟動解決問題
註:當您完成故障排除,請重置電腦以像往常一樣啟動。
如果在干凈啟動狀態之下,錯誤信息:failed to validate certificate,將不執行該應用程序依然出現的話,請按照以下步驟更改Java設置:
打開Java控制面板:
》進入開始菜單,選擇運行,輸入JAVACPL.CPL
選擇高級選項卡》 安全性 》常規
取消「啟用網上證書驗證」
選擇「啟用受信任發行商名單」
如果以上方法依然無法解決您的問題,你可以御載當前安裝的Java,並重新安裝最新的Java
❽ 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做一個httpClient 發送https 的get請求,需要證書驗證的那種,求大神指點一下!
你那個 SSLSocketFactory(ks) 是自己的類?
你有用過 KeyManager.init (...)? 和 TrustManager.init(...) ?
想要在連接建立過程上互動式的彈出確認對話框來的話需要我們自己提供一個 KeyManager 和 TrustManager 的實現類,這有點復雜,你可以看一個 Sun 的 X509KeyManager 是怎麼做的,默認地情況下它是從自動搜索匹配的 subject ,我們需要用自己提供的方式彈出確認的過程還不是全自動,另外一個賬戶可能有多個數字證書,比如支付寶我們就有多個簽發時間不一樣的數字證書,在連接建立時 IE 會提示我們選擇其中的一個來使用,銀行的 U 盾在安裝多張數字證書時也會提示我們選擇其中一個對應到你正在使用的銀行卡號的那張證書。