天天看點

SSL-用OpenSSL指令行生成證書檔案

SSL-用OpenSSL指令行生成證書檔案---來自CSDN,稍微增補了一下   軟體準備: http://www.openssl.org/related/binaries.html  在這裡可以下載下傳到windows版本的,目前版本 v0.9.8g ­

­

   也許很多人和本人一樣深有體會,使用OpenSSL庫寫一個加密通訊過程,代碼很容易就寫出來了,可是整個工作卻花了了好幾天。除将程式編譯成功外(沒有可以使用的證書檔案,編譯成功了,它并不能跑起來,并不表示它能正常使用,是以......),還需生成必要的證書和私鑰檔案使雙方能夠成功驗證對方。 ­

找了n多的資料,很多是說的很模糊,看了n多的英文資料,還是沒有辦法(不知道是不是外國朋友都比較厲害,不用說明得太清?),無意間找到yawl ([email protected])寫的文章,難得的漢字(呵呵)。裡面有生成證書部分,說到生成了 Certificate Signing Request (CSR)檔案後,就有點不太清楚了。後面生成自簽字證書在很多地方都可以找到的,簽名這部分,yawl說mod_ssl有比較好的腳本,但是筆者一時找不到,就自己用openssl的ca指令來完成了,也不是很麻煩。 ­

­

說說本人的操作環境:無盤工作站(有權限問題使用起來不太友善),操作目錄是openssl/bin(沒辦法改不了環境變量,如果你可以改的話,就不用在這個目錄下工作了),為了友善本人把apps下的openssl.cnf也複制到了這個目錄下來。檔案名都是以本人使用的來說了: ­

­

1.首先要生成伺服器端的私鑰(key檔案): ­

openssl genrsa -des3 -out server.key 1024 ­

運作時會提示輸入密碼,此密碼用于加密key檔案(參數des3便是指加密算法,當然也可以選用其他你認為安全的算法.),以後每當需讀取此檔案(通過openssl提供的指令或API)都需輸入密碼.如果覺得不友善,也可以去除這個密碼,但一定要采取其他的保護措施! ­

去除key檔案密碼的指令: ­

openssl rsa -in server.key -out server.key ­

­

2.openssl req -new -key server.key -out server.csr -config openssl.cnf ­

生成Certificate Signing Request(CSR),生成的csr檔案交給CA簽名後形成服務端自己的證書.螢幕上将有提示,依照其訓示一步一步輸入要求的個人資訊即可. ­

­

3.對用戶端也作同樣的指令生成key及csr檔案: ­

openssl genrsa -des3 -out client.key 1024 ­

openssl req -new -key client.key -out client.csr -config openssl.cnf ­

­

4.CSR檔案必須有CA的簽名才可形成證書.可将此檔案發送到verisign等地方由它驗證,要交一大筆錢,何不自己做CA呢. ­

    1)在bin目錄下建立目錄 demoCA、demoCA/certs、demoCA/certs  、 demoCA/newcerts ­

    2) 在demoCA建立一個空檔案 index.txt ­

    3) 在demoCA建立一個文本檔案 serial, 沒有擴充名,内容是一個合法的16進制數字,例如 0000 ­

     4) openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf ­

5.用生成的CA的證書為剛才生成的server.csr,client.csr檔案簽名: ­

Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf ­

Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf ­

現在我們所需的全部檔案便生成了. ­

另: ­

client使用的檔案有:ca.crt,client.crt,client.key ­

server使用的檔案有:ca.crt,server.crt,server.key ­

.crt檔案和.key可以合到一個檔案裡面,本人把2個檔案合成了一個.pem檔案(直接拷貝過去就行了) (openssl新的版本已經放到demoCA/newcerts目錄下了) ­

   星之魄發表于 2005年06月11日 17:52:00 ­

   ­

  原文 : http://blog.csdn.net/darkstar21cn/archive/2005/06/11/392492.aspx­