OpenSSL生成證書詳解 如何使用OpenSSL生成自簽證書 轉載
原文:http://my.oschina.net/fajar/blog/425478
使用OpenSSL生成自簽證書(親測)
一,前言
讀過我部落格的小夥伴兒都知道,我一般在前言裡面會提到為什麼寫這篇部落格,這次的理由是:公司讓我寫個證書與商業合作伙伴在交換資料時進行簽名和加密。
需求:
生成一對 RSA 鑰匙,公鑰採用 X。509 進行加密,私鑰採用 PKCS8 進行加密, 位元組長度為 1024
二,準備工作
三,實戰
1,執行OpenSSL的安裝程式,例如我安裝在 D:\MySoftware\OpenSSL-Win64
2,設定環境變數
OPENSSL_HOME = D:\MySoftware\OpenSSL-Win64 (你需要把地址替換你安裝資料夾)
Path = Path + ; + OPENSSL_HOME (在配環境變數時一定要注意 ;)
3,建立一個你將用來建立證書的目錄,例如我的是 F:\Test
4,檔案和目錄補齊(如果不補齊在自簽證書時會報找不到檔案的錯)
在你建立證書的目錄下,手動建立如下檔案(檔案作用附加在檔名後面)
index.txt OpenSSL在建立自簽證書時會向該檔案裡寫下索引
database.txt OpenSSL會模擬資料庫將一些敏感資訊寫在該檔案裡
serial.txt 建立該檔案後,請編輯在第一行寫下 01
注意: 這裡提到的所有檔案必須補齊,並且檔名不得更改 !
5,開始敲命令吧
a,生成 CA 根證書,做簽名使用的,因為我們是自己給自己簽名嘛!
openssl genrsa -des3 -out root.key 1024
這個時候會讓你輸入兩次根證書的密碼,根證書嘛肯定是要保密的
b,生成 CA 的自簽證書
openssl req -new -x509 -key root.key -out root.crt -days 365 -config openssl.conf
這個時候會讓你輸入一些組織資訊,請記住,你現在輸入的資訊和你接下來要簽名的資訊一致
c,同樣的道理生成伺服器端私鑰
openssl genrsa -out server.key 1024
d,生成伺服器端簽名請求檔案
openssl req -new -key server.key -out server.csr -config openssl.conf
同樣會讓你輸入一個組織資訊,記得跟根證書一致
e,利用 CA 進行簽名證書
openssl ca -in server.csr -out server.crt -keyfile root.key -cert root.crt -days 365 -config openssl.conf
到底我們的證書生成完成!但是有些格式不是我們需要的,請看接下倆格式轉換
6,常用格式轉換
a,得到 pfx 格式的私鑰
openssl pkck12 -export -out server.pfx -inkey server.key -in server.crt
b,從pfx檔案中分離出 cer 格式的公鑰
openssl x509 -inform pem -in server.crt -outform der -out server_public.cer