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  #更新证书吊销列表
Tags: