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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值