導航:首頁 > 編程語言 > java證書請求

java證書請求

發布時間:2023-05-23 06:53:04

A. java無法驗證證書怎麼解決

你的問題是不是"由於無法驗證發行者,所以windows已經阻止此軟體"如要安裝未簽名的activex控制項,按如下步驟:1、打開Internet Explorer---菜單欄點「工具」---Internet選項--安全---自定義級別---安全設置---「ActiveX控制項和插件下」的第5個「

B. https證書到期會影響java請求么



在java代碼中請求https鏈接的時候,可能會報下面這個錯誤

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

原因是沒有證書。在瀏改斗配覽器中直接使用url訪問是可以的,應該是瀏覽器之前就保存過對應的.cer證書。

解決方法有兩種,從目標機器獲得有效證書或者忽略證書信任問題。

一、獲得目標機器有效證書

1、編譯安裝證書程序 javac InstallCert.java

2、運行安裝證書程序生成證書

java InstallCert my.hoolai.com

例如:java InstalCert smtp.zhangsan.com:465 admin

如果不加參數password和host的埠號,上面的獲取證書程序中默認給的埠號是:443,密碼是:changeit3、根據運行提示信息,輸入1,回車,在當前目錄下生成名為: jssecacerts 的證書

將證書放置到$JAVA_HOME/jre/lib/security目錄下, 切記該JDK的jre是工程所用的環境!!!

或者:

System.setProperty("javax.net.ssl.trustStore", "你的jssecacerts證書路徑");

可以更改密碼,在security目錄下運行命令

keytool -storepasswd -new xxxcom -keystore cacerts

就可以修改密碼,修改後使用命核指令

keytool -list -v -keystore cacerts

查看文件的信息,會提示需要密碼才能查看,如果輸入密碼與修改後的密碼匹配,說明修改成功了。

PS:至此這種方式可以成功使用ssl了,另外再補充一下,根據剛才生成的文件jssecacerts,可以生成cer文件,

命令如下

keytool -export -alias xxx.com-1 -keystore jssecacerts -rfc -file xxx.cer

如上,之前的工具類中默認命名別名是加上"-1"。使用InstallCert設置的密碼需要跟cacerts文件中的密碼一致,

如果修改過密碼,就需要修改InstallCert類中對應的密碼字元串,否則會有下面這個異常:

java.security.UnrecoverableKeyException: Password verification failed

二、忽略證書信任問題

源碼:http://mengyang.iteye.com/blog/575671

一定要注意需要在connection創建之前調用文章里所述的方法,像這個樣子:

trustAllHttpsCertificates();

HostnameVerifier hv = new HostnameVerifier() {

public boolean verify(String urlHostName, SSLSession session) {

return true;

}

};

HttpsURLConnection.setDefaultHostnameVerifier(hv);

connection = (HttpURLConnection) url.openConnection();

好吧,兩種方法都試過有效銷旅。

C. 如何用Java讀取使用證書

證書(Certificate,也稱public-key certificate)是用某種簽名演算法對某些內容(比如公鑰)進行數字簽名後得到的、可以用來當成信任關系中介的數字憑證。證書發行機構通過發行證書告知證書使用者或實體其公鑰(public-key)以及其它一些輔助信息。證書在電子商務安全交易中有著廣泛的應用,證書發行機構也稱CA(Certificate Authority)。

應用證書

證書在公鑰加密應用中的作用是保證公鑰在某些可信的機構發布,其在協議SSL、電子交易協議SET等方面有重要的應用。圖1顯示了一個最簡單的證書應用方法:

圖1 證書應用方法

證書的應用步驟是:

(1) A把自己的公鑰PKA送到CA(Certificate Authority);

(2) CA用自己的私鑰和A的公鑰生成A的證書,證書內包括CA的數字簽名。簽名對象包括需要在證書中說明的內容,比如A的公鑰、時間戳、序列號等,為了簡化這里不妨假設證書中只有三項內容:A的公鑰PKA、時間戳TIME1、序列號IDA。那麼CA發送給A的簡單證書憑證可表達為:CertA=Eca[TIME1,IDA,PKA];

(3) B同樣把自己的公鑰PKB送到CA;

(4) B得到CA發布的證書CertB;

(5) A告知B證書CertA;

(6) B告知A證書CertB。

A、B各自得到對方證書後,利用從CA得到的公鑰(在CA的自簽證書中)驗證彼此對方的證書是否有效,如果有效,那麼就得到了彼此的公鑰。利用對方的公鑰,可以加密數據,也可以用來驗證對方的數字簽名。

本文為了方便說明,並沒有使用從CA獲得的證書,而是通信雙方各自產生自簽證書,也就是說圖1的A和B並沒有經過CA,不過前提是A和B之間是互相擁有對方的證書。

D. 用java做一個httpClient 發送https 的get請求,需要證書驗證的那種,求大神指點一下!

你那個 SSLSocketFactory(ks) 是自己的類?

你有用過 KeyManager.init (...)? 和 TrustManager.init(...) ?

想要在連接建立過程上互動式的彈出確認對話框來的話回需要我們自己答提供一個 KeyManager 和 TrustManager 的實現類,這有點復雜,你可以看一個 Sun 的 X509KeyManager 是怎麼做的,默認地情況下它是從自動搜索匹配的 subject ,我們需要用自己提供的方式彈出確認的過程還不是全自動,另外一個賬戶可能有多個數字證書,比如支付寶我們就有多個簽發時間不一樣的數字證書,在連接建立時 IE 會提示我們選擇其中的一個來使用,銀行的 U 盾在安裝多張數字證書時也會提示我們選擇其中一個對應到你正在使用的銀行卡號的那張證書。

E. 如何用Java讀取使用證書

Java為安全應用提供了豐富的API,J2SDK1.4 的JSSE (JavaTM Secure Socket Extension) 包括javax.security.certificate包,並且提供對證書的操作方法,代碼如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.io.*;
public class CARead extends JPanel {
private String CA_Name;
private String CA_ItemData[][] = new String[9][2];
private String[] columnNames = {"證書欄位標記","擾蘆內容" };
public CARead(String CertName) {
CA_Name=CertName;
/* 三個Panel用來顯示證書內容*/
JTabbedPane tabbedPane = new JTabbedPane();
JPanel panelNormal = new JPanel();
tabbedPane.addTab("普通信息", panelNormal);
JPanel panelAll=new JPanel();
panelAll.setLayout(new BorderLayout());
tabbedPane.addTab("所有信息",panelAll);
JPanel panelBase64=new JPanel();
panelBase64.setLayout(new BorderLayout());
tabbedPane.addTab("橘槐Base64編碼信息",panelBase64);
/* 讀取證書常規信息 */
Read_Normal(panelNormal);
/* 讀取證書文件字元串表示內容 */
Read_Bin(panelAll);
/* 讀取證原始Base64編碼形式的證書緩伍帶文件 */
Read_Raw(panelBase64);
tabbedPane.setSelectedIndex(0);
setLayout(new GridLayout(1, 1));
add(tabbedPane);
}
}
定義證書信息的讀取函數如下:
private int Read_Normal(JPanel panel){
String Field;
try{
CertificateFactory certificate_factory=CertificateFactory.getInstance("X.509");
FileInputStream file_inputstream=new FileInputStream(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();
final JTable table = new JTable(CA_ItemData, columnNames);
TableColumn tc=null;
tc = table.getColumnModel().getColumn(1);
tc.setPreferredWidth(600);
panel.add(table);
}catch(Exception exception){
exception.printStackTrace();
return -1;
}
return 0;
}

F. java https 證書 java 實現https請求

JSSE是一個SSL和TLS的純Java實現,通過JSSE可以很容易地編程實現對HTTPS站點的訪問。但是回,如果該站點的證書答未經權威機構的驗證,JSSE將拒絕信任該證書從而不能訪問HTTPS站點。建議到權威CA機構去申請一受信任的免費https證書來使用,比如wosign免費多域名https證書等。

G. 如何生成證書請求或如何自動安裝用戶證書Java的

你會用XEnroll就好辦,XEnroll的CreatePKCS10方法就是用來生成證書請求的。

H. 手機java軟體總么弄證書 方法或者是步驟 。。。 謝謝.

第1步:每天渣培中午11點去塞班論壇申請證書,下載「塞班專用簽名工具」和「專用key」,並在電腦里安裝簽名工如旅唯具。
第2步:導入證書,導入key(用滑鼠右鍵點擊)
第3步:簽名。選鎮碧中需要簽名的軟體,點擊滑鼠右鍵,「簽名此文件」或「簽名全部文件」。

I. 在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 &

J. Java處理PFX格式證書

在Security編程中 有幾種典型的密碼交換信息文件格式: DER encoded certificate: cer crt PEM encoded message: pem PKCS# Personal Information Exchange: pfx p PKCS# Certification Request: p PKCS# cert request response: p r PKCS# binary message: p b

cer/ crt是用於存放證書 它是 進制形式存放的 不含私鑰 pem跟crt/cer的區別是它以Ascii來表示 pfx/p 用於存放個人證書/私鑰 他通常包含保護密碼 進制方式 p 是證書請求 p r是CA對證書請求的回復 只用於導入 p b以樹狀展示證書鏈(certificate chain) 同時也支持單個證書 不含私鑰

其中 我介紹如何從p /pfx文件中提取密鑰對及其長度: 首先 讀取pfx/p 文件(需要提供保護密碼) 通過別名(Alias 注意 所有證書中的信息項都是通過Alias來提取的)提取你想要分析的證書鏈 再將其轉換為一個以X 證書結構體 提取裡面的項山姿肢 如果那你的證書項放在第一位(單一證書) 直接讀取 x Certs[ ](逗世見下面的代碼)這個X Certificate對象 X Certificate對象有很多方法 tain 網友希望讀取RSA密鑰(公私鑰)及其長度(見?topicId= &forumId= &) 那真是太Easy了 X Certificate keyPairCert = x Certs[ ];冊裂 int iKeySize = X CertUtil getCertificateKeyLength(keyPairCert); System out println( 證書密鑰演算法= +keyPairCert getPublicKey() getAlgorithm()); System out println( 證書密鑰長度= +iKeySize); 提取了他所需要的信息

package dev dev client keypair;

import java io File; import java io FileInputStream; import java io FileNotFoundException; import java io IOException; import java security KeyStore; import java security KeyStoreException; import java security NoSuchAlgorithmException; import java security NoSuchProviderException; import java security Security; import java security cert Certificate; import java security cert CertificateException; import java security cert X Certificate; import dev dev security keytool X CertUtil;

public class LoadKeyFromPKCS {

public static void main(String[] args) { try { // Open an input stream on the keystore file String pfxFileName = c:\david turing pfx ; String pfxPassword = ;

File fPkcs = null ; if (pfxFileName != null ) { // Open the file fPkcs = new File(pfxFileName); }

FileInputStream fis = new FileInputStream(fPkcs );

// Create a keystore object KeyStore keyStore = null ; try { // Need BC provider for PKCS # BKS and UBER if (Security getProvider( BC ) == null ) { throw new Exception( 不能Load入BouncyCastle! ); }

keyStore = KeyStore getInstance( PKCS BC ); } catch (KeyStoreException ex) { throw new Exception( 不能正確解釋pfx文件! ); } catch (NoSuchProviderException ex) { throw new Exception( Security Provider配置有誤! ); }

try { // Load the file into the keystore keyStore load(fis pfxPassword toCharArray()); } catch (CertificateException ex) { throw new Exception( 證書格式問題! ); } catch (NoSuchAlgorithmException ex) { throw new Exception( 演算法不支持! ); } catch (FileNotFoundException ex) { throw new Exception( pfx文件沒找到 ); } catch (IOException ex) { throw new Exception( 讀取pfx有誤! ); }

// 獲取我的證書鏈的中keyEntry的別名 Certificate[] certs = keyStore getCertificateChain( david turing ); X Certificate[] x Certs = nvertCertificates(certs);

if (x Certs == null ) { return ; }

x Certs = X CertUtil orderX CertChain(x Certs);

X Certificate keyPairCert = x Certs[ ];

int iKeySize = X CertUtil getCertificateKeyLength(keyPairCert); System out println( 證書密鑰演算法= + keyPairCert getPublicKey() getAlgorithm()); System out println( 證書密鑰長度= + iKeySize);

} catch (Exception e) { e printStackTrace(); } }

lishixin/Article/program/Java/hx/201311/26970

閱讀全文

與java證書請求相關的資料

熱點內容
pc桌面壁紙文件夾 瀏覽:473
微信怎麼添加群 瀏覽:781
40歲男人適合的微信名 瀏覽:925
編程里比例怎麼打 瀏覽:215
蘋果12兩個app如何分屏 瀏覽:592
ps下載完不是壓縮文件 瀏覽:362
電腦中的個人文件包括什麼 瀏覽:572
網路連接一般什麼密碼 瀏覽:199
java定時器quartz實例 瀏覽:259
稻殼excel文件太大怎麼弄 瀏覽:901
文件里的視頻如何保存到相冊 瀏覽:428
手機百度雲文件電腦 瀏覽:957
編程怎麼做到時鍾精準 瀏覽:912
錘子用過的壁紙在哪個文件里 瀏覽:468
qq網站安全性未知訪問不了怎麼辦 瀏覽:270
燕秀怎麼修改編程人名字 瀏覽:789
2012年天之眼導航升級 瀏覽:595
如何安裝視頻文件 瀏覽:315
紅米2A升級miui9 瀏覽:927
如何在表格中加入一行資料庫 瀏覽:421

友情鏈接