每日一得 openssl證書製作步驟

2021-06-30 16:53:59 字數 1908 閱讀 3277

建立openssl環境: 

1. 安裝 openssl 

2. 進入安裝目錄下的bin資料夾,把bin\pem\的democa資料夾複製到bin下 

3. 進入democa下,新建乙個newcerts的資料夾   

步驟概括: 

在命令列下,進入openssl的bin資料夾, 

1. openssl genrsa -des3 -out server.key 1024 

2. openssl req -new -key server.key -out server.csr -config openssl.cfg 

3. openssl genrsa -des3 -out client.key 1024 

4. openssl req -new -key client.key -out client.csr -config openssl.cfg 

5. openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cfg 

6. openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cfg   

openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cfg   

步驟詳細解釋: 

1.首先要生成伺服器端的私鑰(key檔案,專門用於儲存金鑰): 

openssl genrsa -des3 -out server.key 1024 

執行時會提示輸入密碼,此密碼用於加密key檔案。引數des3便是指加密演算法,當然也可以選用其他你認為安全的演算法,具體參見其文件。以後每當需讀取此檔案(通過openssl提供的命令或api)都需輸入口令。 

如果覺得不方便,也可以去除這個口令,但一定要採取其他的保護措施。去除key檔案口令的命令: 

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

2. 生成certificate signing request(csr),生成的csr檔案(儲存證書請求,用記事本開啟檢視可以發現時base64編碼)交給ca簽名後形成服務端自己的證書: 

openssl req -new -key server.key -out server.csr -config openssl.cfg 螢幕上將有提示,依照其指示一步一步輸入要求的個人資訊即可。但要注意,其中的前三項(地域資訊和公司)在整個實驗過程填寫需要一致(後面生成ca、客戶端的csr檔案也需要填寫)。

3. 對客戶端也作同樣的命令生成key及csr檔案: 

openssl genrsa -des3 -out client.key 1024 

openssl req -new -key client.key -out client.csr -config openssl.cfg  

4. csr檔案必須有ca的簽名才可形成證書,因此要另外生成乙個ca證書 

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cfg  

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

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cfg 

openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cfg 

注意事項  實驗報告請附帶提交你所生成的證書。此外實驗報告需要通過圖說明一下問題: 

每日一得 20150606

mysql error 1217錯誤 error 1217 23000 cannot delete or update a parent row a foreign key constraint fails 可能是mysql在innodb中設定了foreign key關聯,造成無法更新或刪除資料。可...

每日一得 java反射

執行時載入類,使用動態載入,靜態載入出現異常,如下所示 1 使用new方式為靜態載入 public class office if excel equals args 0 結果 編譯異常 2使用反射class方式動態載入 public class officebetter catch excepti...

每日一得 MySQL全文檢索筆記

1.mysql 4.x版本及以上版本提供了全文檢索支援,但是表的儲存引擎型別必須為myisam,以下是建表sql,注意其中顯式設定了儲存引擎型別 create table articles id int unsigned auto increment not null primary key,tit...