A. 證書.PFX , .cer或crt , .key , .jks 通過什麼指令進行互相轉換
常見證書格式及相互轉換
PKCS 全稱是 Public-Key Cryptography Standards ,是由 RSA 實驗室與其它安全系統開發商為促進公鑰密碼的發展而制訂的一系列標准,PKCS 目前共發布過 15 個標准。 常用的有:
PKCS#7 Cryptographic Message Syntax Standard
PKCS#10 Certification Request Standard
PKCS#12 Personal Information Exchange Syntax Standard
X.509是常見通用的證書格式。所有的證書都符合為Public Key Infrastructure (PKI) 制定的 ITU-T X509 國際標准。
PKCS#7 常用的後綴是: .P7B .P7C .SPC
PKCS#12 常用的後綴有: .P12 .PFX
X.509 DER 編碼(ASCII)的後綴是: .DER .CER .CRT
X.509 PAM 編碼(Base64)的後綴是: .PEM .CER .CRT
.cer/.crt是用於存放證書,它是2進制形式存放的,不含私鑰。
.pem跟crt/cer的區別是它以Ascii來表示。
pfx/p12用於存放個人證書/私鑰,他通常包含保護密碼,2進制方式
p10是證書請求
p7r是CA對證書請求的回復,只用於導入
p7b以樹狀展示證書鏈(certificate chain),同時也支持單個證書,不含私鑰。
—————-
小美註:
der,cer文件一般是二進制格式的,只放證書,不含私鑰
crt文件可能是二進制的,也可能是文本格式的,應該以文本格式居多,功能同der/cer
pem文件一般是文本格式的,可以放證書或者私鑰,或者兩者都有
pem如果只含私鑰的話,一般用.key擴展名,而且可以有密碼保護
pfx,p12文件是二進制格式,同時含私鑰和證書,通常有保護密碼
怎麼判斷是文本格式還是二進制?用記事本打開,如果是規則的數字字母,如
—–BEGIN CERTIFICATE—–
//a3VIcDjANBgkqhkiG9w0BAQUFADBy
—–END CERTIFICATE—–
就是文本的,上面的BEGIN CERTIFICATE,說明這是一個證書
如果是—–BEGIN RSA PRIVATE KEY—–,說明這是一個私鑰
文本格式的私鑰,也可能有密碼保護
文本格式怎麼變成二進制? 從程序角度來說,去掉前後的—-行,剩下的去掉回車,用base64解碼,就得到二進制了
不過一般都用命令行openssl完成這個工作
—————
一 用openssl創建CA證書的RSA密鑰(PEM格式):
openssl genrsa -des3 -out ca.key 1024
二用openssl創建CA證書(PEM格式,假如有效期為一年):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf
openssl是可以生成DER格式的CA證書的,最好用IE將PEM格式的CA證書轉換成DER格式的CA證書。
三 x509到pfx
pkcs12 -export –in keys/client1.crt -inkey keys/client1.key -out keys/client1.pfx
四 PEM格式的ca.key轉換為Microsoft可以識別的pvk格式。
pvk -in ca.key -out ca.pvk -nocrypt -topvk
五 PKCS#12 到 PEM 的轉換
openssl pkcs12 -nocerts -nodes -in cert.p12 -out privatekey.pem
openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem
openssl pkcs12 -nodes -in ./cert.p12 -out ./cert_key.pem
六 從 PFX 格式文件中提取私鑰格式文件 (.key)
openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key
七 轉換 pem 到到 spc
openssl crl2pkcs7 -nocrl -certfile venus.pem -outform DER -out venus.spc
用 -outform -inform 指定 DER 還是 PAM 格式。例如:
openssl x509 -in Cert.pem -inform PEM -out cert.der -outform DER
八 PEM 到 PKCS#12 的轉換,
openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem
九 cer 到 pem
openssl x509 -in aps_developer.cer -inform DER -out aps_developer.pem -outform PEM
十 der 到 pem
der和cer是一樣的,如果openssl x509不能load證書,報如下錯:
unable to load certificate
就說明不是一個證書,用下面的命令試一下,因為der也可能是一個csr轉換格式後的文件:
openssl req -inform der -outform pem -in ./customer.der -out ./customer.csr
十一、密鑰去掉加密(使用時不用手動輸入密碼)
openssl rsa -in customerPrivateKey.pem -out ./customerPrivateKey_unenrypted.pem
十二、合成證書和密鑰
cat ./customerPrivateKey_unenrypted.pem ./mdm_push_cert.pem > merger2.pem
B. 如何將證書字元串轉換為X509結構
(1)Openssl生成公私鑰
使用Openssl是為了生成公鑰和私鑰對,用於外部商戶系統和xxx系統之間報文的安全性驗證。如果使用者不需要生成公私鑰,而是直接對報文進行處理,則參考第四部分,計算摘要及簽名值。
1. 安裝openssl步驟直接點擊exe文件。出現需要安裝vs2008插件的,直接忽略。
2. 在安裝過程中找到OpenSSL相應的安裝目錄,進入bin目錄下找到openssl.exe可執行文件,點擊運行。然後分別按順序輸入如下命令:
a. genrsa –out private-rsa.key 1024
說明:該命令是生成一個沒有加密的私鑰
genrsa 生成私鑰文件,私鑰存儲在private-rsa.key中,長度為1024。out後面指定輸出文件名。
private-rsa.key 為生成的私鑰文件,但該文件必須經過處理得到私鑰。
b. req –new –x509 –key private-rsa.key –days 750 –outpublic-rsa.cer
說明:根據private-rsa.key生成證書public-rsa.cer
-new 表示新的請求
-509 表示輸出的證書結構
750表示證書有效天數
-out public-rsa.cer -out後面表示公鑰證書,用於驗證數字簽名,此公鑰證書或者公鑰需要提前發送給需要驗證本單位或部門數據的接收方。
c. pkcs12 –export –name test-alias –in public-rsa.cer–inkey private-rsa.key –out 99bill-rsa.pfx
說明:生成PKCS12 格式Keystore
密碼前後輸入要一致,這個密碼在用Keystore生成公私鑰過程中會用到。
Public-rsa.cer, private-rsa.key是之前生成的。
附1:
下述代碼是從99bill-rsa.pfx中獲取私鑰的Java版本代碼。因為private-rsa.key中生成的私鑰無法直接使用,必須進行一定的處理。
代碼有幾個注意點:
文件流初始化路徑需要根據自己的實際路徑來填寫。
密碼是在第二節中c步驟中的密碼,本實例輸入的是suning。
KeyStorekeyStore = KeyStore.getInstance("PKCS12");
= newFileInputStream("D:/OpenSSL/bin/99bill-rsa.pfx");
char[]nPassword = "suning".toCharArray();
StringkeyAlias = null;
keyStore.load(fileInputStream,nPassword);
fileInputStream.close();
System.out.println("keystoretype=" + keyStore.getType());
Enumerationenumeration = keyStore.aliases();
if(enumeration.hasMoreElements())
{
keyAlias = (String) enumeration.nextElement();
System.out.println("alias=[" + keyAlias +"]");
}
System.out.println("iskey entry=" + keyStore.isKeyEntry(keyAlias));
PrivateKeyprikey = (PrivateKey) keyStore.getKey(keyAlias, nPassword);
//私鑰轉成字元串
StringprivateStr = Base64.encodeBase64String(prikey.getEncoded()).trim();
//生成公鑰字元串,還可以通過cer證書生成
Certificatecert = keyStore.getCertificate(keyAlias);
PublicKeypubkey = cert.getPublicKey();
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
注意:
1. 所用類的說明:
Base64:
import org.apache.commons.net.util.Base64;
Certificate:
import java.security.cert.Certificate;
2. 在openssl生成公私鑰過程中,用戶輸入了密碼。本例中密碼為suning。
1. 摘要及生成方法
摘要的生成過程(digest方法全部實現了下述3個過程):
1. 根據key對傳來的map數據排序;
2. 生成a1=b1&a2=b2&a3=b3形式的字元串,排除某些字元串Key值;
3. 調用digest方法進行md5編碼;
以上三步均通過Digest.digest()方法實現:
String digest = Digest.digest(Map map, String... keys);
傳遞的http報文體body內容如a1=b1&a2=b2&a3=b3形式的字元串,提取出需要加簽的字元串並轉成map形式。execludeKes是要排除的欄位,是一個字元串數組。
計算摘要這一步很關鍵,因為選取的欄位要求發送方和接收方必須一致,即發送方對哪些欄位計算摘要,那麼同樣地接收方也必須對相同的欄位計算摘要,否則會報6601的錯誤。
說明:a. Map是存儲了計算摘要的欄位
b. keys表示排除的欄位,不能用於計算摘要的欄位,如signature,signAlgorithm
2. 公鑰證書及字元串轉換方法
轉換的目的:便於存儲。(商戶直接提供公鑰證書也可以,但是對於向驗簽系統提供公鑰字元串的商戶,需要用下述代碼把公鑰轉成字元串)
1. 公鑰/私鑰字元串轉成公鑰/私鑰,主要是把字元串轉成公鑰PublicKey
X509EncodedKeySpec pubKeySpec = newX509EncodedKeySpec(Base64.decodeBase64(strPubKey));
KeyFactorykeyFactory = KeyFactory.getInstance(RSA);
PublicKeypubKey = keyFactory.generatePublic(pubKeySpec);
2. 公鑰或私鑰轉成Base64字元串:
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
3. 公私鑰驗證方法
驗證目的:公私鑰生成之後,需要驗證是否匹配。(之前許多商戶生成公私鑰混亂,無法確定公私鑰是否匹配就添加到驗簽系統中)。此代碼由用戶自己用junit驗證運行。驗證公私鑰生成是否正確,如果result為true,則說明公私鑰生成正確;否則生成的公私鑰有問題,不能使用。
String prik1 ="";
String pubb ="";
String data ="wkk";
String digest =Digest.digest(data);
PrivateKey privateKey =RSAUtil.getPrivateKey(prik1);
String sign =RSAUtil.sign(digest, privateKey);
boolean result =RSAUtil.vertiy(digest, sign,
RSAUtil.getPublicKey(pubb));
System.out.println(result);
C. 建行網銀盾更換以後怎麼更換證書
呵呵,可能是銀行幫我注銷和重新開網銀出了點問題,
網銀盾
還是掛上了以前的。你去櫃台要
櫃員
把你的網銀盾在系統里換一個就行了,不需要注銷現在的網銀。
D. 如何更換pmp證書
在通過PMP考試以後,每隔三年續證一次,前提是需要三年內積攢到60個PDU,也就是專業從事PM工作或學習的時長。
這60個PDU的獲取,首先在拿到證書之後,每年從事項目管理工作,自動會增加5個PDU,三年就累計15個,剩下45個基本平均每年積攢15個即可。
而在積攢PDU的過程其實就是一個學習的過程,提升自己的過程,積攢PDU主要通過一些培訓機構舉辦的大型活動、行業研討會等,每個積攢的過程都幫助大家提升項目管理綜合能力,比如流程優化、團隊建設、領導力提升等。
如果到期未續證的話,證書就會過期,想要重新獲取,只能重新參加考試,按照首次申請的方案,獲取證書。
E. 如何更換證書
請求更換專利證書應當交回原專利證書,並繳納手續費。
F. 怎麼替換原有的過期證書
程序安裝時幾種有錯誤提示的解決辦法(新手必看) 錯誤提示一:證書過期 問題說明:軟體證書過期. 解決辦法:1:把手機時間調到證書的期限內(把手機時間往前調幾個月)再安裝,安裝完畢後調回正確時間 (調整時間的方法:設置--手機設置--常規--日期和時間--日期) 2:為軟體重新簽名 錯誤提示二:證書錯誤 問題說明:1.安裝的軟體沒有簽名 2.如果是JAR程序,一般是因為證書有沖突。(很多java游戲都會出這個錯誤提示,解決辦法看下面2) 解決辦法:1:為軟體簽名; 2:將程序(軟體/游戲)直接安裝到手機上或更換存儲卡 錯誤提示三:更新錯誤 問題說明:一般出現這提示是因為安裝軟體時手機內有舊版本的相同軟體沒有刪除,進行了重復安裝。或者因為新、舊版軟體安裝程序標題不同引起沖突。 解決辦法:1: 卸載舊版軟體之後,再安裝新版本軟體; 2:把新版本軟體解包,在PKG文檔中把安裝程序標題改為與舊版一致 錯誤提示四:證書尚未生效 問題說明:手機的時間超出軟體證書的期限. 解決辦法:1:檢查手機的日期是否設置正確; 2:把手機時間調到證書的期限內,然後再裝。在安裝過後再調回正確時間即可 錯誤提示五:未授予所需的程序接入許可權 問題說明:1.出於塞班第三版系統的安全問題,一些程序的許可權被禁止使用。沒有該許可權的程序都無法安裝,或該程序已經被簽名。2.證書出錯. 解決辦法:1:使用未簽過名的軟體重新簽名後再安裝; 2:去掉手機證書許可權限制----XX手機 錯誤提示六:證書受限制 問題說明:1:由軟體簽名出錯或者軟體已被多次簽名引起.2:低許可權證書簽名了高許可權程序 解決辦法:1:使用未簽過名的軟體重新簽名後再安裝. 2:核實該程序所要求的證書許可權,證書許可權要和程序許可權相匹配。(目前本論壇製作的證書許可權為17項,簽名19項許可權的程序時有可能出現此問題) 錯誤提示七:無法安裝不被信任的提供商提供的受保護應用程序 問題說明:有幾種可能引發此問題:1.手機設置問題 2.軟體沒有簽名或者簽名不正確 3.證書沖突. 解決辦法:1:進入手機的「程序管理」- 「選項」-「設置」:「安裝軟體」設置成--全部,「在線證書檢查」設置成--關; 2:將未簽過名的軟體重新簽名後再安裝; 3 :格機後再安裝(注意格機前請作好備份) 錯誤提示八:文件受損 問題說明:安裝程序文件被破壞或者不完整,有可能是在程序下載或者解時引起的文件破壞. 解決辦法:請確定下載的程序文件是好的。建議再次下載(下載其他帖子里的)或解壓縮程序再試。 錯誤提示九:無任何提示 問題說明:程序安裝好後點其圖標卻無法運行,一般是中文文件名的JAR程序出現這種情況. 解決辦法:刪除掉已經安裝的JAR程序,將JAR程序文件名改為全英文之後再試。 錯誤提示十:手機啟動失敗 問題說明:一般是某個程序安裝失敗後重啟手機時出現這個提有部分是升級機器時失敗導致. 解決辦法:如果是某個程序安裝失敗,那麼只需要將存儲卡拿出來,然後再次啟動機器。並將安裝錯誤的程序刪除掉即可。 如果是手機升級後出現,那麼就只有重新格機了。需要注意的是:一些開機啟動並常駐內存的軟體是無法通過格式化解決的。所以,軟格前先需要把這些軟體全部關閉或刪除。 錯誤提示十一:此應用程序僅供開發之用,繼續安裝可能會導致你的設備出現嚴重問題 問題說明:這個是軟體的免責申明。 解決辦法:不用理會,繼續安裝即可! 錯誤提示十二:無法在線檢查證書有效性,請檢查設置 問題說明:手機設置問題 解決辦法:設置--手機設置--應用程序--程序管理:「軟體安裝」--選擇 "全部",「在線證書檢查」--選擇 "關".
G. 更換瀏覽器證書怎麼弄
更換瀏覽器證書方法如下:
1、按下 Windows + R 鍵打開「運行」,輸入「mmc」,點擊「確認」,打開控制台;
H. 1688上的證書切換是怎麼裝修的
安心吧,都有配件的可以安裝的,不清楚最好買之前跟商家溝通下比較有底
I. 淘寶付款有兩個銀行證書怎麼切換
它應該是自己能自動識別的。
如不能,建議你安裝的時候記下證書號碼,以便正確使用。
J. 國家職業技術等級證書怎樣更換成國家職業資格證書
CECC證是教育部的一個下屬機構發的,基本無用。 換不了。
職業資格證書, 只有人力內資源和社會保障部印章的容才有效。證書的有效范圍,由上面級別最高的一個章決定。 人社部是是負責中央政府負責勞動者職業技能、水平鑒定的職能部門,有人社部章的,全國有效。其它如建設部、工信部章的,行業內有效。 如果證書上級別最高的章是省人社廳,那就是全省有效。人力資源管理, 可以考經濟師的人力資源管理專業,再其次就是《中華人民共和國職業資格證書》中的人力資源管理師。其它的證都沒用。