1. 程式人生 > >OpenSSL 給自己頒發根證書,由根證書籤發下級證書的步驟。

OpenSSL 給自己頒發根證書,由根證書籤發下級證書的步驟。

1.建立根證書

(1)生成私鑰

openssl genrsa -des3 -out CAroot.key 2048。產生一個2048位的私鑰,在安裝的openssl目錄下呼叫openssl命令。

需要輸入私鑰保護口令。

產生CAroot.key檔案。

(2)生成證書請求

openssl req -new  -key CAroot.key -out  rootca.csr -config D:\OpensslInstall\openssl.cnf

需要輸入CAroot.key私鑰保護口令。

根據提示輸入:國家、省份、組織名、郵箱、等資訊。

最後生成rootca.csr證書請求檔案。

(本人將編譯安裝過程中產生的openssl.cnf檔案拷貝到D:\OpensslInstall\目錄下)

(3)簽發證書

openssl req -x509 -days 666 -key rootca.key -in rootca.csr -out CARoot.crt -config D:\OpensslInstall\openssl.cnf

最後生成自簽名的根證書 CARoot.crt.。

下面將介紹以CARoot.crt為根證書籤發下級證書的過程。

(1)openssl genrsa -des3 -out myprivate.key 1024

生成自己的私鑰。

(2)生成證書請求檔案

openssl  req -new -key  myprivate.key  -out MyCaReq.csr -config  D:\OpensslInstall\openssl.cnf

(3)根證書籤發下級證書

openssl x509 -req -in MyCaReq.csr  -out MyCa.crt   -signkey myprivate.key  -CA CARoot.crt -CAkey rootca.key 

-CAcreateserial  -days 990

簽發的證書製作完成。

OpenSSL 1.0.0生成p12、jks、crt等格式證書的命令個過程
 
此生成的證書可用於瀏覽器、java、tomcat、c++等。在此備忘!
 
 
1.建立根證私鑰
命令:
openssl genrsa -out root-key.key 1024
 
2.建立根證書請求檔案
 命令:
openssl req -new -out root-req.csr -key root-key.key -keyform PEM

3.自籤根證書
命令:
 openssl x509 -req -in root-req.csr -out root-cert.cer -signkey root-key.key -CAcreateserial -days 3650
 
4.匯出p12格式根證書
命令:
openssl pkcs12 -export -clcerts -in root-cert.cer -inkey root-key.key -out root.p12

5.生成root.jks檔案
keytool -import -v -trustcacerts -storepass 123456 -alias root -file root-cert.cer -keystore
root.jks

生成客戶端檔案:
1.生成客戶端key
openssl genrsa -out client-key.key 1024
2.生成客戶端請求檔案
openssl req -new -out client-req.csr -key client-key.key
3.生成客戶端證書(root證書,rootkey,客戶端key,客戶端請求檔案這4個生成客戶端證書)
openssl x509 -req -in client-req.csr -out client-cert.cer -signkey client-key.key -CA root-cert.cer
-CAkey root-key.key -CAcreateserial -days 3650
4.生成客戶端p12格式根證書
openssl pkcs12 -export -clcerts -in client-cert.cer -inkey client-key.key -out client.p12
 
客戶端jks:
 keytool -import -v -trustcacerts -storepass 123456 -alias client -file client-cert.cer -keystore
client.jks
 
生成服務端檔案:
1.生成服務端key
openssl genrsa -out server-key.key 1024
2.生成服務端請求檔案
openssl req -new -out server-req.csr -key server-key.key
3.生成服務端證書(root證書,rootkey,客戶端key,客戶端請求檔案這4個生成客戶端證書)
openssl x509 -req -in server-req.csr -out server-cert.cer -signkey server-key.key -CA root-cert.cer
-CAkey root-key.key -CAcreateserial -days 3650
4.生成服務端p12格式根證書
openssl pkcs12 -export -clcerts -in server-cert.cer -inkey server-key.key -out server.p12
服務端JKS
 keytool -import -v -trustcacerts -storepass 123456 -alias server -file server-cert.cer -keystore
server.jks

無密碼key命令:
openssl rsa -in client-key.key -out client-key.key.unsecure

以上產生的Base64編碼方式,PEM、cer,crt

DER編碼方式也是有DER .Cer, crt字尾。

PEM--DER/CER(BASE64--DER編碼的轉換)

       openssl x509 -outform der -in certificate.pem -out certificate.der

PEM--P7B(PEM--PKCS#7)

       openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

PEM--PFX(PEM--PKCS#12)

       openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

PEM--p12(PEM--PKCS#12)

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

CER/DER--PEM(編碼DER--BASE64)

       openssl x509 -inform der -in certificate.cer -out certificate.pem

P7B--PEM(PKCS#7--PEM)

       openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

P7B--PFX(PKCS#7--PKCS#12)

       openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
       openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

PFX/p12--PEM(PKCS#12--PEM)

       openssl pkcs12 -in certificate.pfx -out certificate.cer
       如無需加密pem中私鑰,可以新增選項-nodes;
       如無需匯出私鑰,可以新增選項-nokeys;

PEM BASE64--X.509文字格式

       openssl x509 -in Key.pem -text -out Cert.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

PEM--PVK(openssl 1.x開始支援)

       openssl rsa -in mycert.pem -outform PVK -pvk-strong -out mypvk.pvk

PEM--PVK(對於openssl 1.x之前的版本,可以下載pvk轉換器後通過以下命令完成)

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

 d2i_X509_AUX或者函式d2i_X509()將DER編碼大的證書轉化為OpenSSL中的X509結構,便於、、讀寫操作、、