自建CA服务器
参考文档:
https://www.cnblogs.com/yanshicheng/p/13424198.html
http://www.yunweipai.com/4513.html
https://www.linuxidc.com/Linux/2017-10/147349.htm
推荐文档:https://www.jianshu.com/p/9142d9d186e2
思路
搭建CA服务分为2个阶段。
1,准备CA证书,包括CA根证书(信任证书),CA的私钥
2,使用CA证书颁发证书
基本作用理解
步骤
1,生成私钥,并且生成自签名证书
#三条命令都是生成私钥的,可对比查看
genrsa -aes128 -passout pass:Yunweipai@123 -out web_key.pem
root@localhost ~]#(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem -des3 2048 )
[root@djcy-200 CA]# (umask 066; openssl genrsa -out private/cakey.pem -des3 2048)
#生成自签名证书,也是一种证书请求文件,因为都是req 命令,但是这个是可以放到浏览器里的root证书。
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem
# -new: 生成新证书签署请求
# -x509: 专用于CA生成自签证书
# -key: 生成请求时用到的私钥文件
# -days n:证书的有效期限
# -out /PATH/TO/SOMECERTFILE: 证书的保存路径
2.创建申请者(子ca服务器或者用户)的证书颁发请求
如果是子ca服务器,需要创建自己的私钥,再用这个私钥来创建请求文件。
#创建自己的私钥文件
(umask 066; openssl genrsa -out /etc/pki/tls/private/subca.top.key)
#根据私钥文件创建证书请求文件
openssl req -new -key /etc/pki/tls/private/subca.top.key -out /etc/pki/tls/subca.top.csr
#将请求文件传输到ca根服务器上,准备生成自己的证书了
scp /etc/pki/tls/subca.top.csr root@xxx.xxx.xxx.xxx:/etc/pki/CA
3.申请颁发证书
在实际生产环境中,一般 CA 服务器都独立部署,因为申请颁发证书的过程是申请者将证书请求(CSR)发送给CA服务器,CA服务器接收到了之后,通过下面命令颁发证书,然后将证书返回给申请者。
所以,这一步是在ca根证书服务器上操作
openssl ca -in /etc/pki/CA/subca.top.csr -out /etc/pki/CA/subca.top.crt -days 3650
将签署好的证书发回给子CA服务器,并改名为cacert.pem;
/etc/pki/CA/cacert.pem 为子CA服务器中openssl.cnf配置文件中的certificate指定的路径
scp subca.top.crt subca_IP:/etc/pki/CA/cacert.pem
4.证书终于颁发完了,通过这个命令,可以验证web.cer是由ca_cert.cer颁发的:
如果使用的是运维派创建的证书类型,这个命令可用,前面是根ca证书,后面是子ca的证书
openssl verify -CAfile ca_cert.cer web.cer
web.cer: OK
扩展:
ssh 密钥的的几种形式
目前有两个主流的密钥格式:OpenSSH格式的密钥 和 PuTTY格式的密钥。
- id_rsa和id_rsa.pub
都是OpenSSH格式的密钥。
id_rsa是OpenSSH格式的SSH私钥。
id_rsa.pub是OpenSSH格式的SSH公钥。 - ppk文件
ppk文件是Putty的私钥。PuTTY Private Key 的缩写。
但是ppk文件中同时包含了公钥和私钥,可用记事本打开查看。 - pem文件
pem文件可以包含任何东西: 具有公共密钥的证书,SSH公钥,公钥私钥,具有公钥私钥的证书。 PEM是一个文本文件,可以用记事本打开。