Openssl生成证书步骤说明
命令操作:
1、生成普通私钥:
2、生成带加密口令的密钥:
在生成带加密口令的密钥时需要自己去输入密码。
对于为密钥加密现在提供了一下几种算
通过生成的私钥去生成证书:
在生成证书的时候需要按照提示输入一些个人信息。
通过私钥生成公钥:
格式转换:(证书、私钥、公钥)(PEM <----->DER)
从DER格式转换成PEM格式一样,就是把inform的格式改成DERoutform的格式改成PEM 即可。
服务器和客户端认证的证书生成
下面是一个服务器和客户端认证的证书、私钥生成方法:(server.crt、client.crt、ca.crt)
用默认openssl配置文件生成证书,先创建文件夹
创建文件夹demoCA/newcerts:
mkdir -p demoCA/newcerts
创建个空文件index.txt:
touch demoCA/index.txt
向文件serial中写入01:
echo 01 > demoCA/serial
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 呢.
openssl req -new -x509 -keyout ca.key -out ca.crt
5.用生成的CA 的证书为刚才生成的server.csr,client.csr 文件签名:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key
现在我们所需的全部文件便生成了.
另:
client 使用的文件有:ca.crt,client.crt,client.key
server 使用的文件有:ca.crt,server.crt,server.key
.crt 文件和.key 可以合到一个文件里面,本人把2 个文件合成了一个.pem 文件(直接拷贝过去就行了)。