CA和证书
1、在 CentOS7 中使用 gpg 创建 RSA 非对称密钥对
gpg --gen-key #Centos上生成公钥/密钥对(存放在家目录.gnupg/)
2、将 CentOS7 导出的公钥,拷贝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公钥加密一个文件
gpg -a --export -o centos7.pubkey #Centos7导出公钥 (命名为centos7.pubkey)
scp centos7.pubkey `centos8 IP`:/key #把公钥从centos7拷贝到centos8的/key目录下
gpg --import /key/centos7.pubkey #在centos8中导入centos7的公钥
gpg -e -r centos7 passwd.txt #在centos8中使用centos7的公钥加密文件(加密后会生成.gpg后缀结尾的文件)
3、回到 CentOS7 服务器,远程拷贝 file.txt.gpg 文件到本地,使用 CentOS7的私钥解密文件
scp `centos8 IP`:/root/passwd.txt.gpg ./ #centos7远程拷贝passwd.txt.gpg文件到当前目录
gpg -d passwd.txt.gpg > passwd.txt #centos7使用私钥解密文件,并把解密后的内容输出到passwd.txt
4、在 CentOS7 中使用 openssl 软件创建 CA
yum -y install openssl openssl-devel #安装OpenSSL相关软件
cd /etc/pki/CA;touch index.txt #进入CA目录生成证书索引数据库文件
echo 01 > serial #指定第一个颁发证书的序列号(编号为十六进制)
(umask 066; openssl genrsa -out private/cakey.pem 2048) #生成CA私钥
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 360 #生成CA自签名证书
选项说明:
-new:生成新证书签署请求
-x509:专用于CA生成自签证书
-key:生成请求时用到的私钥文件
-days n:证书的有效期限
-out /PATH/TO/SOMECERTFILE: 证书的保存路径
5、 在 CentOS7 中使用 openssl 软件创建一个证书申请请求文件,并使用上面的跟证书对其进行签署
(umask 066; openssl genrsa -out /key/test.key 2048) #生成私钥
openssl req -new -key /key/test.key -out /key/test.csr #生成申请文件(默认国家、省、公司三项必须跟CA一致)
openssl ca -in /key/test.csr -out certs/test.crt -days 100 #在CA签署证书,并将证书颁发给申请者
6、吊销已经签署成功的证书
openssl x509 -in certs/test.crt -noout -serial -subject #查找要吊销的证书
echo 01 > crlnumber #指定吊销证书的编号
openssl ca -revoke newcerts/01.pem #吊销证书
openssl ca -gencrl -out crl.pem #更新证书吊销列表