openssl生成公鑰、私鑰和證書

ssl:secure socket layer(安全套接層協議)的縮寫,通過此協議可以保證兩個應用通信的可靠性和保密性。

openssl:是ssl協議的實現。提供了對稱加密算法、非對稱加密算法以及祕鑰證書管理等功能。

公鑰私鑰:公鑰和私鑰組成一個密鑰對,必須配對使用。一般公鑰公開,私鑰自己保留。

        公鑰加密,私鑰解密,一般用於傳輸數據;

        私鑰加密,公鑰解密,一般用於數字簽名、驗證身份。

證書:全稱是公鑰證書,由第三方機構CA頒發。CA利用自己的私鑰對真正的公鑰施加數字簽名並生成證書,客戶拿到證書後,通過CA的公鑰來對證書解密,拿到真正的公鑰。證書有兩種編碼格式:

        1.pem:文本格式,以"-----BEGIN..."開頭,以"-----end..."結尾,內容是base64編碼,Apache和*nix服務器一般使用這種編碼;

        2.der:二進制格式,不可讀,windows服務器一般偏向使用這種。

理論介紹差不多了,下面介紹pfx和crt兩種證書的生成。

1.openssl生成祕鑰:

openssl genrsa -out server.key 1024

執行此命令後,會在當前目錄下生成一個長度爲1024的server.key文件。

2.根據server.key文件首先生成cer證書,但該證書不包含私鑰,得生成pfx證書:

#利用server.key文件生成server.cer證書
openssl req -new -x509 -key server.key -out server.cer -days 365 -subj /CN=baidu.com
#利用server.key文件和server.cer證書生成pfx證書
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.cer

執行第二條命令生成pfx證書後,會提示輸入密碼,記住改密碼,後面可以通過此密碼獲取公鑰和私鑰。

#先獲取密鑰對pubAndPri.key文件
openssl pkcs12 -in server.pfx -nocerts -nodes -out pubAndPri.key
#提取公鑰
openssl rsa -in pubAndpri.key -pubout -out server_pub.key
#提取私鑰
openssl rsa -in  pubAndpri.key -out server_pri.key

3.根據server.key文件先生成csr證書請求文件,再生成crt證書:

#先根據server.key文件生成server.key證書請求文件
openssl req -new -key server.key -out server.csr
#利用server.key文件和server.csr證書請求文件生成pfx證書
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章