Openssl生成pem格式的数字证书(适配win2000)

        在Openssl库生成数字证书总结(适配win2000)一文中我们已经实现了crt后缀证书的生成,现在说一下怎么生成pem后缀的证书。大体思路很简单,就是使用OpenSSL生成一个CA根证书,并用这个根证书颁发两个子证书server和client。下面就来说一下实现的具体步骤:

        一、命令行进入openssl的out32dll路径下,新建一个private文件夹用于放置我们生成的各种证书文件。

        二、生成根证书

        1、生成根证书私钥 -- pem文件

        openssl genrsa -out private/cakey.pem 1024

                

        genrsa——使用RSA算法产生私钥

        -out——输出文件的路径

        1024——指定私钥长度

        2、生成根证书签发申请文件 -- csr文件

        openssl req -new -key private/cakey.pem -out private/ca.csr -config ../apps/openssl.cnf

                 

        req——执行证书签发命令

        -new——新证书签发请求

        -key——指定私钥路径

        -out——输出的csr文件的路径

        3、自签发根证书 -- cer文件

        openssl x509 -req -days 365 -sha1 -extensions v3_ca -signkey private/cakey.pem -in private/ca.csr -out private/ca.cer

        

         x509——生成x509格式证书

        -req——输入csr文件

        -days——证书的有效期(天)

        -sha1——证书摘要采用sha1算法

        -extensions——按照openssl.cnf文件中配置的v3_ca项添加扩展

        -signkey——签发证书的私钥

        -in——要输入的csr文件

        -out——输出的cer证书文件

        4、生成根证书签发申请文件 -- pem文件

        openssl req -new -x509 -key private/cakey.pem  -out private/cacert.pem -config ../apps/openssl.cnf

         

        二、用根证书签发服务端证书

        1、生成服务端私钥

        openssl genrsa -out private/server-key.pem 1024

        

         2、生成根证书请求文件

        openssl req -new -key private/server-key.pem -out private/server.csr -config ../apps/openssl.cnf

        

         3、使用根证书签发服务端证书

        openssl x509 -req -days 365 -sha1 -extensions v3_req -CA private/ca.cer -CAkey private/cakey.pem -CAserial ca.srl -CAcreateserial -in private/server.csr -out private/serverCert.pem
         

         -CA——指定CA证书的路径

        -CAkey——指定CA证书的私钥路径

        -CAserial——指定证书序列号文件的路径

        -CAcreateserial——表示创建证书序列号文件(即上方提到的serial文件),创建的序列号文件默认名称为-CA,指定的证书名称后加上.srl后缀

        

        三、用根证书签发客户端证书

        1、生成客户端私钥

        openssl genrsa -out private/client-key.pem 1024

        

        2、 生成证书请求文件

        openssl req -new -key private/client-key.pem -out private/client.csr -config ../apps/openssl.cnf

        

        3、 使用根证书签发客户端证书

        openssl x509 -req -days 365 -sha1 -extensions v3_req -CA private/ca.cer -CAkey private/cakey.pem -CAserial ca.srl -in private/client.csr -out private/clientCert.pem

        

        以上步骤操作无误的话,打开private文件夹如图:

        

        其中cacert.pem、clientCert.pem、client-key.pem、serverCert.pem、server-key.pem就是我们需要的文件了。使用win2000环境下使用openssl-0.9.6i实现通信加密 里的代码进行测试:

        

测试结果显示通信正常,证书可以正常使用。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古道青阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值