如何用openssl命令行生成证书

举报
香菜聊游戏 发表于 2021/07/15 00:42:04 2021/07/15
【摘要】 我总结一下,步骤主要有: 一、安装openssl,上一篇blog里面已经提及,装好在目录/usr/local下面能找到一个ssl的文件夹         cd   /usr/local/ssl 二、拷贝openssl.cnf,把ssl下的openssl.cnf拷贝到你的工作目录下去...

一、安装openssl,上一篇blog里面已经提及,装好在目录/usr/local下面能找到一个ssl的文件夹

        cd   /usr/local/ssl

二、拷贝openssl.cnf,把ssl下的openssl.cnf拷贝到你的工作目录下去,就是你要生成证书的目录,我的是/home/yinlijun/projects/server/

        cp  openssl.cnf  /home/yinlijun/projects/server

三、在工作目录下创建一个demoCA的文件夹, 新建两个文件,index.txt serial , 再在demoCA下创建一个newcerts的文件夹

        mkdir demoCA

        cd demoCA

        touch ./{serial,index.txt}

四、在serial里面加两个字符01

        vi serial

        然后在里面输入01这两个字符

        :wq 退出

 

到这里 ,准备工作已经就绪, 可以开始生成需要的密钥和证书了,按照下面一步步来吧, 以下摘自<http://blog.csdn.net/darkstar21cn/archive/2005/06/11/392492.aspx>

 

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 -config openssl.cnf
生成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 -config openssl.cnf

4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.

先生成ca.key
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:
Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

现在我们所需的全部文件便生成了.



文章来源: gamwatcher.blog.csdn.net,作者:香菜聊游戏,版权归原作者所有,如需转载,请联系作者。

原文链接:gamwatcher.blog.csdn.net/article/details/18314703

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。