使用openssl工具创建CA证书和申请证书时,需要先查看配置文件,因为配置文件中对证书的名称和存放位置等相关信息都做了定义,具体可参考/usr/lib/ssl/openssl.cnf 文件。
修改文件内容
![](https://img-blog.csdnimg.cn/5351a4cd6ef34c548e2455979a020307.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5Y-I5a2m,size_20,color_FFFFFF,t_70,g_se,x_16)
/etc/pki/CA中创建下面文件
第一步:创建为 CA 提供所需的目录及文件
sudo mkdir -pv /etc/pki/CA/{certs,crl,newcerts,private}
![](https://img-blog.csdnimg.cn/a2c64176a28f434fbc271a51182b2748.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5Y-I5a2m,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/f8371b2b8441480289d1c28912fa215e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5Y-I5a2m,size_14,color_FFFFFF,t_70,g_se,x_16)
需要在文件serial中输入01。
echo 01 >> serial
![](https://img-blog.csdnimg.cn/e4550d72008b43bb9f692f8c8d7ba77e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5Y-I5a2m,size_15,color_FFFFFF,t_70,g_se,x_16)
CA创建的公钥私钥必须放在指定路径下的文件中;
私钥:/etc/pki/private/cakey.pem
umask 077; openssl genrsa -out ./private/cakey.pem
![](https://img-blog.csdnimg.cn/5d773644072b4bab936815c5e3780b93.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5Y-I5a2m,size_20,color_FFFFFF,t_70,g_se,x_16)
生成自签证书,生成证书时需要填写相应的信息;
公钥:/etc/pki/CA/cacert.pem
openssl req -new -x509 -key filename -out filename
-new:生成一个新的证书;
-x509:当是CA生成这个自签证书时使用x509;
-key:CA的私钥;
-out filename:输出的公钥文件即自签证书;
-days:自签证书的有效期限,以天为单位;
实例:
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem
![](https://img-blog.csdnimg.cn/5d36bd09aa5d4e228b63a34447e49307.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5Y-I5a2m,size_20,color_FFFFFF,t_70,g_se,x_16)
颁发证书
在需要使用证书的主机上生成证书请求,以 httpd 服务为例,步骤如下:
第一步:在需要使用证书的主机上生成私钥,这个私钥文件的位置可以随意定。我是在另一个文件夹里面生成的私钥,步骤和CA生成私钥一样。
![](https://img-blog.csdnimg.cn/43b1121db6114229a199f570ee9b4526.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5Y-I5a2m,size_20,color_FFFFFF,t_70,g_se,x_16)
umask 077; openssl genrsa -out httpd.key
第二步:生成证书签署请求
openssl req -new -key httpd.key -out httpd.csr -days 3560
第三步:将请求通过可靠方式发送给 CA 主机,直接复制到/etc/pki/CA目录下
openssl ca -in httpd.csr -out httpd.crt -days 3650
![](https://img-blog.csdnimg.cn/85211b68551444618c5c66e1121e1c38.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5Y-I5a2m,size_20,color_FFFFFF,t_70,g_se,x_16)