用OpenSSL编写SSL,TLS程序(2)

本文详细介绍如何使用openssl生成服务器端和客户端所需的私钥、CSR文件及证书,并自行搭建CA进行签名的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

:证书文件生成
 
除将程序编译成功外,还需生成必要的证书和私钥文件使双方能够成功验证对方,步骤如下:
 
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
生成Certificate Signing RequestCSR,生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要 求的个人信息即可.
 
3.
对客户端也作同样的命令生成keycsr文件:
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr
 
4.CSR
文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA.
首先生成CAkey文件:
openssl -des3 -out ca.key 1024
在生成CA自签名的证书:
openssl req -new -x509 -key ca.key -out ca.crt
如果想让此证书有个期限,如一年,则加上"-days 365".
("
如果非要为这个证书加上一个期限,我情愿是..一万年")
 
5.
用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:
可以用opensslCA系列命令,但不是很好用(也不是多难,,一言难尽),一篇文章中推荐用mod_ssl中的sign.sh脚本,试了一下,确实方便了不 ,如果ca.csr存在的话,只需:
./sigh.sh server.csr
./sign.sh client.csr
相应的证书便生成了(后缀.crt).
 
现在我们所需的全部文件便生成了.
 
其实openssl中还附带了一个叫CA.pl的文件(在安装目录中的misc子目录下),可用其生成以上的文件,使用也比较方便,但此处就不作介绍了.
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值