Linux下使用openssl生成證書


利用OpenSSL生成庫和命令程序,在生成的命令程序中包括對加/解密算法的測試,openssl程序,ca程序.利用openssl,ca可生成用於C/S模式的證書文件以及CA文件.

 

證書文件的生成步驟:

一、服務器端
1.生成服務器端的私鑰(key文件);

openssl genrsa -des3 -out server.key 1024

運行時會提示輸入密碼,此密碼用於加密key文件(參數des3是加密算法,也可以選用其他安全的算法),以后每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果不要口令,則可用以下命令去除口令:

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

2.生成服務器端證書簽名請求文件(csr文件);

openssl req -new -key server.key -out server.csr

生成Certificate Signing Request(CSR),生成的csr文件交給CA簽名后形成服務端自己的證書.屏幕上將有提示,依照其 提示一步一步輸入要求的個人信息即可(如:Country,province,city,company等).
image

 

二、客戶端
1.對客戶端也作同樣的命令生成key及csr文件;

openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr

image

 

三、生成CA證書文件
server.csr與client.csr文件必須有CA的簽名才可形成證書.

1.首先生成CA的key文件:

openssl genrsa -des3 -out ca.key 1024

2.生成CA自簽名證書:

openssl req -new -x509 -key ca.key -out ca.crt

可以加證書過期時間選項 "-days 365".

image

四、利用CA證書進行簽名
用生成的CA證書為server.csr,client.csr文件簽名,利用openssl中附帶的CA.pl文件

1. 在提示輸入已有的證書文件時,輸入上面已生成的ca.crt證書文件;

ca.pl –newca


2.生成服務端證書文件

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

image

 

3.生成客戶端證書文件

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

必須保證openssl.cnf在當前目錄下,這個文件可以在apps目錄中找到.

image

 

五、可能出現的錯誤

錯誤1:

error loading the config file 'openssl.cnf'

解決方法

find . -name "openssl.c*"
cp /usr/local/ssl/openssl.cnf ./

 

錯誤2:

image

image

解決方法

touch demoCA/serial
echo "00" > demoCA/serial

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM