1 搭建CA
1.1 环境的搭建
首先创建CA目录,所有与CA相关的内容都包含在这个文件夹中。然后在这个目录下再建立2个文件夹newcerts和private,分别用于存放CA发布的证书和CA的私钥。另外还需要创建3个文件,第一个文件用来追踪已经发布的证书的序列号,因为每个证书的序列号都必须唯一。这个文件叫做serial,它的初始值为1. 这个数值是16进制,并且最少为2位。第二个文件的初始值为空,名字为index.txt。它是个数据库,保存CA发布的证书的信息,每一行对应一个证书。
mdkir ~/democa
cd ~/democa
mkdir newcerts private
echo '01' > serial
touch index.txt
1.2 OpenSSL配置文件
使用命令openssl ca可以查看默认配置文件的位置,把它拷贝到demoCA目录。然后对它进行修改
(1)dir=. #把工作目录指向当前目录
1.3 创建CA根证书
通常需要3步来建立一个CA证书:CA私钥;CA证书签名请求(CSR);CA证书
1.3.1 CA私钥
openssl genrsa -out cakey.pem 2048
生成一个RSA秘钥,长度为2048位。
1.3.2 CSR
openssl req -new -key cakey.pem -out cacsr.pem
你会被要求输入很多参数,这些参数就是申请者的身份信息,你可以全部按空格(使用默认值),但是必须输入Common Name。同时CSR需要包含申请者的公钥,所以-key指定公钥文件。
此命令用来查看刚刚生成的CSR
openssl req -text -in cacsr.pem
1.3.3 CA证书
openssl ca -config ./openssl.cnf -keyfile cakey.pem -in cacsr.pem -selfsign -out cacert.pem
2 用CA签发证书
2.1 制作client私钥
openssl genrsa -out clientkey.pem 2048
2,2 CSR
openssl req -new -key clientkey.pem -out clientcsr.pem
2.3 用CA签发client证书
openssl ca -config ./openssl.cnf -keyfile cakey.pem -cert cacert.pem -in clientcsr.pem -out clientcrt.pem
3 二级CA证书
3.1 二级CA私钥和CSR
openssl req -newkey rsa:2048 -keyout secondkey.pem -out secondcsr.pem
3.2 用根CA签发二级CA证书
openssl ca -config ./openssl.cnf -keyfile cakey.pem -cert cacert.pem -in secondcsr.pem -out secondcert.pem
4 用二级CA签发server证书
4.1 server私钥和CSR
openssl req -newkey rsa:2048 -keyout serverkey.pem -out servercsr.pem
4.2 用二级CA签发server证书
openssl ca -config ./openssl.cnf -keyfile secondkey.pem -cert secondcert.pem -in servercsr.pem -out servercert.pem