古詩詞大全網 - 藝術簽名 - openssl——自簽名根證書、簽名客戶端和服務器證書

openssl——自簽名根證書、簽名客戶端和服務器證書

openssl genrsa -out root.key 2048

也可以是pem文件,也可為了區分這是私鑰而改用key後綴名,內容如下:

查看詳細解析:包含兩個大素數和兩個指數和壹個系數

openssl rsa -in root.key -text

可通過命令提取公鑰:

openssl rsa -pubout -in root.key

openssl req -new -out root-req.csr -key root.key -keyform PEM

-keyform PEM:證書有pem和der格式之分,前者文本,多用於java和windows服務器,後者二進制

CSR是Certificate Signing Request的英文縮寫,即證書請求文件

openssl x509 -req -in root-req.csr -out root-cert.cer -signkey root.key -CAcreateserial -days 365

-CAcreateserial ,創建證書序列號,使用此選項,當CA序列號文件不存在時將被創建:它將包含序列號“02”,正在簽名的證書將具有1作為其序列號。通常如果指定了-CA選項並且序列號文件不存在,則會出現錯誤。

-days 據說3650天有時候會意外導致證書驗證失敗,沒遇到過

此處可有pem、crt、cer多種輸出格式,其實內容都壹樣,來試壹下:

每次生成的證書都不壹樣,但是未發現不同後綴名下的證書格式不同。

我的理解:

pem是最基本的編碼格式,der也相同。

CRT文件是由第三方證書頒發機構(例如VeriSign或DigiCert)提供和生成的安全文件,ASCII編碼格式。

cer是crt的微軟形式。

為了統壹,全使用cer格式。

可選擇將證書和私鑰導入密鑰庫,通常用p12和jks( Java Key Store)格式:

openssl pkcs12 -export -in root-cert.cer -inkey root.key -out root.p12 -name "lab"

需要加密保護, -name 設置別名

然後可選擇使用keytool將p12轉為jks格式,此處就不做轉換了。

步驟基本相同

步驟基本相同

openssl genrsa -out server-key.key 2048

openssl req -new -out server-req.csr -key server-key.key -keyform PEM

openssl x509 -req -in server-req.csr -out server-cert.cer -CA F:\CERT\mycert\ test\openssl\win\root\root-cert.cer -CAkey F:\CERT\mycert\test\openssl\win\root\root.key -CAcreateserial -days 360

openssl pkcs12 -export -in server-cert.cer -inkey server-key.key -out server. p12 -name "lab-server"

運行環境要包含完整證書鏈。需要將證書鏈放到系統可信目錄下。

為證書綁定ip,只能通過config文件,

文件如下可將常用參數寫入,生成請求文件時直接enter即可:

使用配置文件時在生成請求文件和簽發證書時的參數不同:

生成請求文件:

openssl req -new -out server-req1.csr -key server-key.key -keyform PEM -extensions v3_req -config openssl. cnf

簽發證書:

openssl x509 -req -in server-req1.csr -out server-cert1.cer -CA F:\CERT\mycert\test\openssl\win\root\root- cert.cer -CAkey F:\CERT\mycert\test\openssl\win\root\root.key -CAcreateserial -days 360 -extensions v3_req -extfile openssl.cnf

默認證書鏈長度為2,使用中間ca簽發時,中間ca的生成需要在配置文件中加修改長度參數:

[ v3_ca ]

basicConstraints = CA:true,pathlen:3

Note:

參考:

OpenSSL主配置文件openssl.cnf

利用OpenSSL創建證書鏈並應用於IIS7

openssl系列文章: blogs.com/f-ck-need-u/p/7048359.html