1. 程式人生 > >常用證書格式轉換

常用證書格式轉換

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)
,同時也支援單個證書,不含私鑰。

1. CA證書

openssl建立CA證書的RSA金鑰(PEM格式)

openssl genrsa -des3 -out ca.key 1024

2. 建立CA證書有效期為一年

openssl建立CA證書(PEM格式,假如有效期為一年)

openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf       

openssl是可以生成DER格式的CA證書的,最好用IEPEM格式的CA證書轉換成DER格式的CA證書。

將生成的crt格式證書匯入到IE

,再匯出就是cer格式了

3. x509轉換為pfx

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt    

4. PEM格式的ca.key轉換為Microsoft可以識別的pvk格式

pvk -in ca.key -out ca.pvk -nocrypt -topvk       

5. PKCS#12  PEM 的轉換

openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem 

openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem       

6.  PFX 格式檔案中提取私鑰格式檔案 (.key)

openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key    

7. 轉換 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       

8. PEM  PKCS#12 的轉換

openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem       

IIS 證書

set OPENSSL_CONF=openssl.cnf 

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt 

server.keyserver.crt檔案是Apache的證書檔案,生成的server.pfx用於匯入IIS

9. How to Convert PFX Certificate to PEM Format for SOAP

$ openssl pkcs12 -in test.pfx -out client.pem 

Enter Import Password: 

MAC verified OK 

Enter PEM pass phrase:

 Verifying - Enter PEM pass phrase: