導航:首頁 > 證書轉讓 > javacer證書

javacer證書

發布時間:2021-02-24 05:33:38

Ⅰ 如何導入.cer證書到Java keystore

1. 如果你想驗證你所需要的私鑰。有沒有其他的選項。 證書是有額外的屬性(國家專,...)是由證書頒發機構garants的附加屬屬性為true簽名的公鑰。
CER文件證書和沒有私鑰。私鑰設置有。PFX密鑰庫正常文件。 如果你真的是驗證你已經導入了私鑰。
你通常可以導入。與任何問題的CER證書 密鑰工具-importcert文件certificate.cer-密鑰庫的keystore.jks別名「別名」
2. 你已經有了該證書可能是伺服器的證書,或簽名伺服器的證書。你會需要它,使您的Web服務客戶端端可以驗證伺服器。 但是,如果你還需要使用SSL進行客戶端端身份驗證,那麼你需要讓自己的證書,來驗證您的Web服務客戶端端。
為此 CodeGo.net,您需要創建一個證書請求,這個過程涉及到創建自己的私有密鑰,以及相應的公開密鑰,以及安裝隨著(電子郵件,網站等)的公共密鑰這就是所謂的證書請求文件。

Ⅱ 如何編一個Java應用讀取XP數字證書庫中的cer證書中的信息

這么復雜,還沒有分兒。。。幫你頂。關於開發就幫不上你了。

Ⅲ 如何利用java來調用證書(如何實現獲取證書公鑰以及客服信任號)

package com.security;
import java.io.*;
import java.security.*;
import java.security.cert.*;
import java.util.*;
import java.math.*;
import sun.security.x509.*;
/**
* <>Description: 該程序根據簽發者(CA)的證書信息(即CA的私鑰)來對被簽發者
* 的證書進行簽名,過程即是使用CA的證書和被簽證書來重構形成一個新的證書</p>
* @author abnerchai
* @version 1.0
*/
public class SignCert {
public static void main(String[] args) throws Exception{
char[] storepass = "100200".toCharArray();
//存放CA證書和被簽證書的證書庫的訪問密碼
char[] cakeypass = "200100".toCharArray();//CA數字證書條目的訪問密碼
String alias = "missionCA";
//CA證書在證書庫中的別名,這個CA的證書用來簽名其它的證書
String name = "abnerCALib";//存放CA證書和被簽證書的證書庫的名字
String newLib = "SignedLib";
//新證書庫的名字,如果需要將簽名後的證書放入新庫,這是新庫的名字
char[] newLibPass = "100200".toCharArray();//設置新庫的訪問密碼
String cerFileName = "abnerCA.cer";//被簽證書的證書文件名
String aliasName = "abnerCA";//被簽證書在證書庫中的alias別名
char[] namePass = "200100".toCharArray();
//被簽證書的條目在證書庫的私鑰密碼
int n =3; //被簽證書的有效期,以年為單位,以當前時間開始計算
int sn = 200406001;
//序列號可自己定義,這里定義的意義為2004年6月簽發,是本年度CA簽發的第多少個以001計算,要求唯一
String afteraliasName = "abnerCA_Signed";
//簽名後新產生的被簽過名的證書在庫中的別名
char[] afterNewPass = "200100".toCharArray();
//簽名後新產生的被簽過名的證書在庫的條目的私鑰的密碼
//裝載證書庫
FileInputStream in = new FileInputStream(name);
KeyStore ks = KeyStore.getInstance("JKS");//JKS為證書庫的類型
ks.load(in,storepass);
//從證書庫中讀出簽發者(CA)的證書
java.security.cert.Certificate cl = ks.getCertificate(alias);
//讀出一個CA證書,這里的l是字母l不是數據字1
PrivateKey privateKey = (PrivateKey)ks.getKey(alias,cakeypass);
//根據別名和證書密碼讀出CA證書的私鑰
in.close();
//從證書庫中讀出的簽發者(CA)的證書中提取簽發者的信息
byte[] encodl = cl.getEncoded();//提取證書的編碼,這里是字母l不是數據字1
X509CertImpl cimpl = new X509CertImpl(encodl);
//這里是字母l不是數據字1,根據證書的編碼創建X509CertImpl類型的對象
//根據上面的對象獲得X509CertInfo類型的對象,該對象封裝了證書的全部內容。
X509CertInfo cinfo_first =
(X509CertInfo)cimpl.get(X509CertImpl.NAME+"."+X509CertImpl.INFO);
//然後獲得X500Name類型的簽發者信息
X500Name issuer = (X500Name)
cinfo_first.get(X509CertInfo.SUBJECT+"."+CertificateIssuerName.DN_NAME);
//獲取待簽發的證書,即獲取被簽發者的證書
//可從密鑰庫中獲取,也可從導出的證書文件中獲取,這里給出兩種方式 ////////////////////////////////////////////////////////////////////////
//方式一、採用從導出的cer文件中獲取 start
///////////////////////////////////////////////////////////////////////////////
/*
CertificateFactory cf = CertificateFactory.getInstance("X.509");
//X.509是使用最多的一種數字證書標准
FileInputStream in2 = new FileInputStream(cerFileName);//被簽證書文件
java.security.cert.Certificate c2 = cf.generateCertificate(in2);
//生成需要被簽的證書
in2.close();
byte[] encod2 = c2.getEncoded();
X509CertImpl cimp2 = new X509CertImpl(encod2);
//獲得被簽證書的詳細內容,然後根據這個證書生成新證書
X509CertInfo cinfo_second =
(X509CertInfo)cimp2.get(X509CertImpl.NAME+"."+X509CertImpl.INFO);
*/
///////////////////////////////////////////////////////////////////////////////
//end 方式一
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//方式二、從證書庫中讀出被簽的證書 start
///////////////////////////////////////////////////////////////////////////////
java.security.cert.Certificate c3 = ks.getCertificate(aliasName);
//從證書庫中讀出被簽證書,然後生成新的證書
byte[] encod3 = c3.getEncoded();
X509CertImpl cimp3 = new X509CertImpl(encod3);
X509CertInfo cinfo_second =
(X509CertInfo)cimp3.get(X509CertImpl.NAME+"."+X509CertImpl.INFO); ///////////////////////////////////////////////////////////////////////////
//end方式二
/////////////////////////////////////////////////////////////////////////// //設置新證書的有效期,使之為當前向後n年有效,新證書的
//截止日期不能超過CA證書的有效日期
Date beginDate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(beginDate);
cal.add(cal.YEAR,n);
Date endDate = cal.getTime();
CertificateValidity cv = new CertificateValidity(beginDate,endDate);
cinfo_second.set(X509CertInfo.VALIDITY,cv);
//設置新證書的序列號
CertificateSerialNumber csn = new CertificateSerialNumber(sn);
cinfo_second.set(X509CertInfo.SERIAL_NUMBER,csn);
//設置新證書的簽發者
cinfo_second.set(X509CertInfo.ISSUER+"."+CertificateIssuerName.DN_NAME,issuer);
//新的簽發者是CA的證書中讀出來的
//設置新證書的演算法,指定CA簽名該證書所使用的演算法為md5WithRSA
AlgorithmId algorithm = new AlgorithmId(AlgorithmId.md5WithRSAEncryption_oid);
cinfo_second.set(CertificateAlgorithmId.NAME+"."+
CertificateAlgorithmId.ALGORITHM,algorithm);
//創建新的簽名後的證書
X509CertImpl newcert = new X509CertImpl(cinfo_second);
//簽名,使用CA證書的私鑰進行簽名,簽名使用的演算法為MD5WithRSA
newcert.sign(privateKey,"MD5WithRSA");//這樣便得到了經過CA簽名後的證書
//把新證書存入證書庫
//把新生成的證書存入一個新的證書庫,也可以存入原證書庫,
//存入新證書庫,則新證書庫中不僅包含原證書庫中的所有條目,
//而且新增加了一個這次產生的條目。注意,這時,新產生的簽名後的證書只
//包括公鑰和主體信息及簽名信息,不包括私鑰信息。這里給出兩種方式。
///////////////////////////////////////////////////////////////////////////
//方式一:存入新密鑰庫
///////////////////////////////////////////////////////////////////////////
/*
ks.setCertificateEntry(afteraliasName,newcert);
FileOutputStream out = new FileOutputStream(newLib);
//存入新庫signedLib,並設置新庫的庫訪問密碼
ks.store(out,newLibPass);
out.close();
*/
///////////////////////////////////////////////////////////////////////////
//end 方式一
///////////////////////////////////////////////////////////////////////////
//也可以採用另外一種方式,存入原證書庫中
//存入原庫中,即在原證書庫中增加一條證書,這個證書是原證書經過簽名後的證書
//這個新證書含有私鑰和私鑰密碼
///////////////////////////////////////////////////////////////////////////
//方式二,存入原密鑰庫
///////////////////////////////////////////////////////////////////////////
//先在原庫中讀出被簽證書的私鑰
PrivateKey prk = (PrivateKey)ks.getKey(aliasName,namePass);
java.security.cert.Certificate[] cchain = {newcert};
//存入原來的庫,第二個參數為原證書的私鑰,第三個參數為新證書的私鑰密碼,第三個參數為新證書
ks.setKeyEntry(afteraliasName,prk,afterNewPass,cchain); //用新密鑰替代原來的沒有簽名的證書的密碼
FileOutputStream out2 = new FileOutputStream(name);
ks.store(out2,storepass);//存入原來的庫中,第二個參數為該庫的訪問密碼
///////////////////////////////////////////////////////////////////////////
//end 方式二
///////////////////////////////////////////////////////////////////////////
}
}

Ⅳ 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");
}
}

Ⅳ java中 用到.cer的安全證書,如何通過openssl來生成這個證書

openssl貌似 linux系統里用的多, 也可以用java的keytool生成,jdk自帶的.

Ⅵ 有誰對Java或者C的 數字簽名 cer證書 密鑰 加密演算法 這些技術熟悉和了解的,能否簡單介紹一下!

我在憑安網路這家公司做開發, 剛剛入職, 該公司做的主要是安全方面的。

完整性: 是指一般意義上的數據完整性,手段不外乎使用更改檢測碼(modification detection code, MDC, 可以用哈希函數來實現),所以保護手段就相對比較成熟. 目前在研究與實踐中很熱門的"可信計算"(Trusted Computing)方法就是將一個軟體代碼的MDC哈希值存入計算平台上的一個密碼晶元中保護起來.

不可抵賴性: 電子交易各方在交易完成時要保證的不可抵賴性:在傳輸數據時必須攜帶含有自身特質、別人無法復制的信息,防止交易發生後對行為的否認。

對稱加解密原理: 五個組成部分
明文
加密演算法
密鑰
密文
解密演算法、

對稱密鑰加密,又稱私鑰加密或會話密鑰加密演算法,即信息的發送方和接收方使用同一個密鑰去加密和解密數據。它的最大優勢是加/解密速度快,適合於對大數據量進行加密,但密鑰管理困難。

非對稱性加解密演算法:允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是「公開密鑰系統」

非對稱密鑰加密系統,又稱公鑰密鑰加密。它需要使用不同的密鑰來分別完成加密和解密操作,一個公開發布,即公開密鑰,另一個由用戶自己秘密保存,即私用密鑰。信息發送者用公開密鑰去加密,而信息接收者則用私用密鑰去解密。公鑰機制靈活,但加密和解密速度卻比對稱密鑰加密慢得多。

數字信封:數字信封是將對稱密鑰通過非對稱加密(即:有公鑰和私鑰兩個)的結果分發對稱密鑰的方法

簽名:就是在應用程序的特定欄位寫入特定的標記信息,表示該軟體已經通過了簽署者的審核。簽署者對該軟體的安全性負責

書籍:網路安全基礎應用於標准 (我現在就在看這本書)

可能有一些的概念理解不到位, 請見諒。

Ⅶ 如何在java創建證書PFX文件嗎

開發人員通常需要將PFX文件轉換為某些不同的格式,如PEM或JKS,以便可以為使用版SSL通信的獨立Java客戶端或權WebLogic Server使用
在Security編程中,有幾種典型的密碼交換信息文件格式:
DER-encoded certificate: .cer, .crt
PEM-encoded message: .pem
PKCS#12 Personal Information Exchange: .pfx, .p12
PKCS#10 Certification Request: .p10
PKCS#7 cert request response: .p7r
PKCS#7 binary message: .p7b

Ⅷ 如何把安全證書導入到java中的cacerts證書庫

把安全證書導入到java中的cacerts證書庫步驟:

1、先下載證書,然後使用命令導入

已經完成了證書的導入。

Ⅸ 在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中的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

閱讀全文

與javacer證書相關的資料

熱點內容
沈陽盛唐雍景糾紛 瀏覽:973
工商局生態市建設工作總結 瀏覽:757
侵權責任法第87條的規定 瀏覽:553
招商地塊南側公共服務項目批前公示 瀏覽:208
盤錦公交投訴電話 瀏覽:607
馬鞍山到宿遷汽車時間 瀏覽:215
公共衛生服務的工作目標 瀏覽:813
知識產權服務制度 瀏覽:726
警察管詐騙叫民事糾紛 瀏覽:650
馬鞍山胡駿 瀏覽:110
推動基層公共服務一門式全覆蓋試點工作調研 瀏覽:680
山東省基本公共衛生服務項目實施方案 瀏覽:349
投訴制凝 瀏覽:932
黑警投訴 瀏覽:95
國培預期研修成果 瀏覽:151
知識產權專利培訓心得 瀏覽:974
工商登記需要提供什麼資料 瀏覽:683
大連使用權房子辦產權需要花多少錢 瀏覽:630
長春工商局投訴電話 瀏覽:519
湖北省基本公共衛生服務規范 瀏覽:393