㈠ DER,CRT,CER,PEM證書以及如何轉換它們
CRT和CER唯一可以安全互換的時間是編碼類型可以相同時。 (即PEM編碼的CRT = PEM編碼的CER)
證書操作有四種基本類型。查看,轉換,組合和導出
查看PEM編碼的證書 使用具有證書擴展名的命令,將cert.xxx替換為證書名稱
如果收到以下錯誤,則表示您正在嘗試查看DER編碼的證書,並且需要使用以下``查看DER編碼的證書''中的命令
查看DER編碼的證書
如果收到以下錯誤,則表示您正在嘗試使用用於DER編碼證書的命令查看PEM編碼證書。使用「上面的查看PEM編碼的證書」中的命令
PEM to DER
DER to PEM
在某些情況下,將多個X.509基礎結構組合到一個文件中是有利的。一個常見的示例是將私鑰和公鑰都組合到同一證書中。
組合證書密鑰和鏈的最簡單方法是將每個密鑰轉換為PEM編碼的證書,然後將每個文件的內容簡單地復制到新文件中。這適合於組合文件以在Apache的應用程序中使用
一些證書將以組合形式出現。其中一個文件可以包含以下任意一項:證書,私鑰,公鑰,簽名證書,證書頒發機構(CA)或頒發機構鏈。
㈡ 如何添加證書到system\etc\security\cacerts.bks
一:
獲取cacerts.bks文件到你的計算機中,可使用android模式器,也可USB連接你的手機。
>adb pull /system/etc/security/cacerts.bks cacerts.bks
二:
在PC上安裝java環境,然後下載這個文件 bcprov-jdk16-141.jar,放入java安裝目錄下的/lib/ext/目錄中。
bcprov-jdk16-141.jar到linux公社的1號FTP伺服器里,下載地址:
FTP地址:www.linuxidc.com" target="_blank">ftp://www.linuxidc.com
用戶名:www.linuxidc.com
密碼:www.muu.cc
在 2011年LinuxIDC.com\5月\Android(cacerts.bks)添加根證書
下載方法見 http://www.linuxidc.net/thread-1187-1-1.html
將第一步中取得的cacerts.bks與你要添加的CA證書放在同一級目錄下,CA證書為crt或cer格式。
㈢ DER、CRT、CER、PEM證書格式介紹及轉換方法
X.509證書,其核心是根據RFC 5280編碼或數字簽名的數字文檔。
實際上,術語X.509證書通常指的是IETF的PKIX證書和X.509 v3證書標準的CRL 文件,即如RFC 5280(通常稱為PKIX for Public Key Infrastructure(X.509))中規定的。
我們首先要了解的是每種類型的文件擴展名。 很多人不清楚DER,PEM,CRT和CER結尾的文件是什麼,更有甚者錯誤地說是可以互換的。 在某些情況下,某些可以互換,最佳做法是識別證書的編碼方式,然後正確標記。 正確標簽的證書將更容易操縱
.DER 擴展用於二進制DER編碼證書。
這些文件也可能承載CER或CRT擴展。 正確的說法是「我有一個DER編碼的證書」不是「我有一個DER證書」。
.PEM 擴展用於不同類型的X.509v3文件,是以「 - BEGIN ...」前綴的ASCII(Base64)數據。
.CRT 擴展用於證書。 證書可以被編碼為二進制DER或ASCII PEM。 CER和CRT擴展幾乎是同義詞。 最常見的於Unix 或類Unix系統。
CER 是.crt的替代形式(Microsoft Convention)您可以在微軟系統環境下將.crt轉換為.cer(.both DER編碼的.cer,或base64 [PEM]編碼的.cer)。
.cer文件擴展名也被IE識別為 一個運行MS cryptoAPI命令的命令(特別是rundll32.exe cryptext.dll,CryptExtOpenCER),該命令顯示用於導入和/或查看證書內容的對話框。
.KEY擴展名用於公鑰和私鑰PKCS#8。 鍵可以被編碼為二進制DER或ASCII PEM。
證書操作有四種基本類型。查看,轉換,組合和提取。
即使PEM編碼的證書是ASCII,它們是不可讀的。這里有一些命令可以讓你以可讀的形式輸出證書的內容;
如果您遇到這個錯誤,這意味著您正在嘗試查看DER編碼的證書,並需要使用「查看DER編碼證書」中的命令。
unable to load certificate 12626:error:0906D06C:PEMroutines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTEDCERTIFICATE
如果您遇到以下錯誤,則表示您嘗試使用DER編碼證書的命令查看PEM編碼證書。在「查看PEM編碼的證書」中使用命令
unable to load certificate 13978:error:0D0680A8:asn1 encodingroutines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1306: 13978:error:0D07803A:asn1 encodingroutines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509
轉換可以將一種類型的編碼證書存入另一種。(即PEM到DER轉換)
PEM到DER
DER到PEM
在某些情況下,將多個X.509基礎設施組合到單個文件中是有利的。一個常見的例子是將私鑰和公鑰兩者結合到相同的證書中。
組合密鑰和鏈的最簡單的方法是將每個文件轉換為PEM編碼的證書,然後將每個文件的內容簡單地復制到一個新文件中。這適用於組合文件以在Apache中使用的應用程序。
一些證書將以組合形式出現。 一個文件可以包含以下任何一個:證書,私鑰,公鑰,簽名證書,證書頒發機構(CA)和/或許可權鏈。
㈣ 如何在安卓手機安裝數字證書 crt和p12
當點擊Wi-Fi Settings, Advanced界面的「安裝證書」;或者在Settings的Security界面下的CredentialStorage界面點擊「安裝證書」。com.android.certinstaller包中的CertInstallerMain類會收到Settings發送的Credentials.INSTALL_AS_USER_ACTION intent。
然後,CertInstallerMain類開始創建一個線程,並開始run。在run中,因為收到了Credentials.INSTALL_AS_USER_ACTION intent, CertInstallerMain開始判斷SD卡是否存在,這里,我們將證書都push到SD卡里了,SD卡當然是存在的。這種情況下,CertInstallerMain類通過其繼承的CertFile類開始讀取卡里的所有證書文件。CertFile類讀取證書的過程很簡單:它把自己設置成了一個FileFilter,在accept方法中,CertFile只接收後綴為Credentials.EXTENSION_CRT, Credentials.EXTENSION_P12, Credentials.EXTENSION_CER, Credentials.EXTENSION_PFX的文件。也就是說當前,Android只支持後綴為crt, p12,cer和pfx的數字證書。
接著,當SD卡里只有一個證書的時候它彈出一個安裝提示框,當SD卡里有一堆證書的時候,它會彈出一個證書列表,這個列表由CertFileList類維護,放點擊某個證書的時候,會和當SD卡里只有一個證書的時候一樣,調用installFromFile方法,彈出一個對話框。CertFile類的install方法會通知CertInstaller來負責證書的安裝。
CertFile類對p12證書和其它證書進行了分類,要是p12證書,我給個對話框,輸入完密碼就OK了。我這里,還使用了WIFI WAP需要的CA證書進行測試。對於CA證書,當點擊彈出對話框的「確認」對應的按鈕後,它會通過CredentialHelper類建立一個com.android.credentials.INSTALL intent發給com.android.settings.CredentialStorage類。當CertInstaller類啟動後它會直接創建一個CredentialHelper類,CredentialHelper類就直接將安裝的證書分類成CA和USER,所以當點擊「確認」後,CredentialHelper會將CA證書的信息通過Credentials.EXTRA_CA_CERTIFICATES_NAME和Credentials.EXTRA_CA_CERTIFICATES_DATA放到com.android.credentials.INSTALL的intent中。
最後,Settings收到了這個intent,通過installIfAvailable()方法,將CA證書的信息保存到了KeyStore中。然後,Settings可以通過KeyStore來讀取保存的證書。
㈤ 安卓(android)手機里的CA證書如何備份出來還原到其它手機上。
Android中Ca證書的PrivateKey獲取正常數據
在4.1版本裡面獲取的值為空,在4.0裡面可以正常獲取,與用keystore獲取的value是一樣的,在4.2+版本裡面獲取的value只有部分值,如下所示,在4.2以上的版本android裡面只有molus值:
1. android系統中先安裝證書,然後通過KeyChain.gePrivateKey(..)獲取到的,無法通過privateKey進行文件解密操作,非正常的privateKey.
molus=
參考網址:(http://)stackoverflow點com/questions斜杠12507697斜杠keychain-getprivatekeycontext-string-on-android-4-1
,
publicExponent=10001,
2. 通過證書文件流方式 ,使用keyStore的方法獲取到的,為所需要的PrivateKey.
molus:public exponent: 10001
private exponent:
primeP:
primeQ:
primeExponentP:
primeExponentQ:
crtCoefficient:
327d611df42341f5d5