原文:http://my.oschina.net/fajar/blog/425478數據庫
使用OpenSSL生成自簽證書(親測)服務器
一,前言加密
讀過我博客的小夥伴兒都知道,我通常在前言裏面會提到爲何寫這篇博客,此次的理由是:公司讓我寫個證書與商業合做夥伴在交換數據時進行簽名和加密。spa
需求:.net
生成一對 RSA 鑰匙,公鑰採用 X。509 進行加密,私鑰採用 PKCS8 進行加密, 字節長度爲 1024orm
二,準備工做server
1,下載OpenSSL在window 7下的安裝包,能夠從我網盤下載 http://pan.baidu.com/s/1jGJ3EtCblog
2,下載OpenSSL執行命令時須要提供的配置文件,參考本人網盤 http://pan.baidu.com/s/1jG06KFs索引
三,實戰ssl
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
三,總結
留下文章讓本身有個參考,歡迎你們一塊兒交流! QQ : 690649714