使用OpenSSL生成私鑰和證書


使用OpenSSL生成私鑰和證書

原理部分可以參考這篇文章的第二節,寫的很詳細
http://blog.csdn.net/jiangwei0910410003/article/details/50402000
生成密鑰和證書的主要目的是給對象(文件,流)進行簽名和簽名驗證

OpenSSL安裝

Linux下安裝openssl(以Ubuntu為例)

sudo apt-get install openssl

Windows下安裝openssl

http://slproweb.com/products/Win32OpenSSL.html

根據操作系統選擇版本直接安裝


使用openssl生成私鑰和證書

這里以Ubuntu為例,說明使用openssl如何生成私鑰和證書,windows也是類似的

生成私鑰

openssl ecparam -name prime256v1 -genkey -noout > eckey

參數解釋:
ecparam 使用ECC算法法生成密鑰
-name prime256v1 使用prime256v1曲線模型
-genkey 生成橢圓曲線密鑰參數
-noout不打印參數編碼的版本信息。
一般來說有兩種方法可以生成私鑰,RSA和ECC,我這里選用ECC,RSA的算法在后面生成證書的時候會使用sha1生成digsest,而ECC算法使用sha256生成digest,在安全性上sha256比sha1要高,所以我這里選擇了ECC算法
生成的私鑰會保存在eckey文件中

使用req命令生成證書

openssl req -new -x509 -sha256 -key eckey -out mykey.x509.pem -days 10000 -subj '/C=CN/ST=Hubei/L=Wuhan/O=Test/OU=Test/CN=Test/emailAddress=380761489@qq.com'

參數解釋:
-x509生成自簽名證書
-sha256使用sha256算法計算digest
-key eckey 使用上一步生成的私鑰
-out mykey.x509.pem指定生成的證書名字
-days 10000 證書有效期為10000天
-subj附加的一些信息,這些信息將會添加到證書里面
下面是-subj字串內容的解釋
/C申請證書的組織所在的國家
/ST申請證書的組織所在的省
/L 申請證書的組織所在的市
/O 申請證書的組織的組織名
/OU申請證書的組織的主頁
/CN申請證書的組織的二級組織名
/emailAddress申請證書的組織的郵箱
申請的自簽名的證書保存在mykey.x509.pem中

將私鑰轉化為pkcs#8格式

openssl pkcs8 -in eckey -topk8 -outform DER -out mykey.pk8 -nocrypt

參數解釋:
-topk8 表示將傳統的私鑰文件轉化為pkcs#8的格式文件
-in eckey 第1步中生成的傳統私鑰文件
-outform DER 輸出的文件編碼格式,DER表示asn1的DER標准格式,其他的還有base64的PEM格式
-out mykey.pk8 輸出的pkcs#8格式的私鑰文件
-nocrypt 表示不需要密碼
將私鑰轉化為pkcs#8格式是為了方便程序讀取,很多標准庫和三方庫的接口都是基於pkcs#8的標准寫的

至此,我們需要的兩個文件已經生成,私鑰mykey.pk8用戶簽名,而證書mykey.x509.pem則用於簽名的驗證


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com