利用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等).
二、客戶端
1.對客戶端也作同樣的命令生成key及csr文件;
openssl genrsa -des3 -out client.key 1024 openssl req -new -key client.key -out client.csr
三、生成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".
四、利用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
3.生成客戶端證書文件
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
必須保證openssl.cnf在當前目錄下,這個文件可以在apps目錄中找到.
五、可能出現的錯誤
錯誤1:
error loading the config file 'openssl.cnf'
解決方法
find . -name "openssl.c*"
cp /usr/local/ssl/openssl.cnf ./
錯誤2:
解決方法
touch demoCA/serial
echo "00" > demoCA/serial






