实现非对称加密文件和证书的创建与吊销

1、在CentOS7中使用gpg创建RSA非对称密钥对

#生成密钥对

[ root@CentOS7 ]# gpg --gen-key

请选择您要使用的密钥种类:

   (1) RSA and RSA (default)

   (2) DSA and Elgamal

   (3) DSA (仅用于签名)

   (4) RSA (仅用于签名)

您的选择? 1                 #不填默认为1

RSA 密钥长度应在 1024 位与 4096 位之间。

您想要用多大的密钥尺寸?(2048)1024     #不填默认为2048

您所要求的密钥尺寸是 1024 位

请设定这把密钥的有效期限。

         0 = 密钥永不过期

      <n>  = 密钥在 n 天后过期

      <n>w = 密钥在 n 周后过期

      <n>m = 密钥在 n 月后过期

      <n>y = 密钥在 n 年后过期

密钥的有效期限是?(0) 0           #不填默认为0

密钥永远不会过期

以上正确吗?(y/n)y

真实姓名:

姓名至少要有五个字符长

真实姓名:centos6

电子邮件地址:

注释:

您选定了这个用户标识:

    “centos6”

 

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O

 #可查看公钥

[ root@CentOS7 ]# gpg --list-keys 

2、将 CentOS7 导出的公钥,拷贝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公钥加密一个文件

#将 CentOS7 导出的公钥

[ root@CentOS7 ]#gpg -a --export -o centos7.pubkey

#拷贝到 CentOS8 中

[ root@CentOS7 ]#scp centos7.pubkey root@(centos8的ip):/root/.gnupg

#centos8导入centos7拷过来的公钥

[ root@CentOS8 ]#gpg --import centos7.pubkey

#用从CentOS7主机导入的公钥,加密CentOS8主机的文件file,生成file.gpg

[ root@CentOS8 ]#gpg -e -r centos7 file

3、回到 CentOS7 服务器,远程拷贝 file.gpg 文件到本地,使用 CentOS7的私钥解密文件

#拷贝

[ root@CentOS7 ]#scp  root@(centos8的ip):/root/file.gpg  /root/

#解密

[ root@CentOS7 ]#gpg -d file.gpg

#也可以解密后导出到别的文件里

[ root@CentOS7 ]#gpg -o file -d file.gpg

或者重定向到别的文件

[ root@CentOS7 ]#gpg -d file.gpg  >  /data/file

 

4、在 CentOS8 中使用 openssl 软件创建 CA 

centos8默认没有/etc/pki/CA/及子目录文件所以要自己创建

[ root@CentOS8 /etc/pki# mkdir -p ./CA/{certs,crl,newcerts,private}

#生成证书索引数据库文件

[ root@CentOS8 /etc/pki/CA# touch /etc/pki/CA/index.txt  

#指定第一个颁发证书的序列号

[ root@CentOS8 /etc/pki/CA# echo 01 > /etc/pki/CA/serial

#生成给CA用的私钥

[ root@CentOS8 /etc/pki/CA#  openssl genrsa -out private/cakey.pem 2048

#生成CA自签证书

[ root@CentOS8 /etc/pki/CA# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem  -days 3650 -out /etc/pki/CA/cacert.pem

-----

Country Name (2 letter code) [XX]:CN                       #输入国家

State or Province Name (full name) []:henan                 #输入省份

Locality Name (eg, city) [Default City]:zhengzhou               #输入城市

Organization Name (eg, company) [Default Company Ltd]:mage         #单位名称

Organizational Unit Name (eg, section) []:it                   #部门

Common Name (eg, your name or your server's hostname) []:CA.mage.com     #您的名字或服务器的主机名

Email Address []:                               #邮件地址

5、 在 CentOS8 中使用 openssl 软件创建一个证书申请请求文件,并使用上面的跟证书对其进行签署

#为需要使用证书的主机生成私钥

[ root@CentOS8 /etc/pki/CA# openssl genrsa -out ./certs/test.key 1024

#利用私钥生成申请文件(文件通常是以.csr为后缀)

[ root@CentOS8 /etc/pki/CA# openssl req -new -key ./certs/test.key -out ./certs/test.csr

#在CA签署证书并将证书颁发给请求者#默认要求 国家,省,公司名称三项必须和CA一致

[ root@CentOS8 /etc/pki/CA# openssl ca -in ./certs/test.csr -out ./certs/test.crt -days 730

6、吊销已经签署成功的证书

 #在客户端获取要吊销的证书的serial

 [ root@CentOS8 /etc/pki/CA# openssl x509 -in ./certs/test.crt -noout -serial -subject

serial=01

subject=C = CN, ST = henan, O = mage, OU = it2, CN = www.mage.com

[ root@CentOS8 /etc/pki/CA# cat ./index.txt

V 220906070933Z 01 unknown /C=CN/ST=henan/O=mage/OU=it2/CN=www.mage.com

#在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,吊销证书:

[ root@CentOS8 /etc/pki/CA#  openssl ca -revoke newcerts/01.pem

Using configuration from /etc/pki/tls/openssl.cnf

Revoking Certificate 01.

Data Base Updated

[ root@CentOS8 /etc/pki/CA# cat index.txt

R 220906070933Z 200906090356Z 01 unknown /C=CN/ST=henan/O=mage/OU=it2/CN=www.mage.com

#指定第一个吊销证书的编号,注意:第一次更新证书吊销列表前,才需要执行

[ root@CentOS8 /etc/pki/CA# echo 01 > ./crlnumber

#更新证书吊销列表

[ root@CentOS8 /etc/pki/CA# openssl ca -gencrl -out ./crl.pem

Using configuration from /etc/pki/tls/openssl.cnf

[ root@CentOS8 /etc/pki/CA# cat crl.pem

-----BEGIN X509 CRL-----

MIIBvDCBpQIBATANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQGEwJDTjEOMAwGA1UE

CAwFaGVuYW4xEjAQBgNVBAcMCXpoZW5nemhvdTENMAsGA1UECgwEbWFnZTELMAkG

A1UECwwCaXQXDTIwMDkwNjA5MjA1MVoXDTIwMTAwNjA5MjA1MVowFDASAgEBFw0y

MDA5MDYwOTAzNTZaoA4wDDAKBgNVHRQEAwIBATANBgkqhkiG9w0BAQsFAAOCAQEA

n2CBusJXLiWcD5WntlxCQArM3mJGCMVN0A1K7o1NK+dSKzp6/D4RiIEpSNqszC2T

kPXA0VzC3IoMLluZ/nzEv8aY9BD4QB7++7EsHVG9ieZbKUkvuOiGls7h1Hfbe7Mk

qQGXQouGi2JH/tvdh7gAI/8oAffvGqjKPvfWYIfdhCqPfi2wKm7hqYB1op87l2qh

FxJX6WJL3dvQ1w7/UEjJYQG4bn8YnPJqxTYhd4tjAUY46QIDh7niIH+CEeBxNaO1

daJe7qJVmas2vNVcdAq7AwMnxpXuww15WjMxda14VdlFt8BnhSGDn8xVBD2LZ0Y6

mKulHGhh4moCrWyOcxXywQ==

-----END X509 CRL-----

#查看crl文件(证书吊销列表)

[ root@CentOS8 /etc/pki/CA# openssl crl -in /etc/pki/CA/crl.pem -noout -text

Certificate Revocation List (CRL):

        Version 2 (0x1)

        Signature Algorithm: sha256WithRSAEncryption

        Issuer: C = CN, ST = henan, L = zhengzhou, O = mage, OU = it

        Last Update: Sep  6 09:22:20 2020 GMT

        Next Update: Oct  6 09:22:20 2020 GMT

        CRL extensions:

            X509v3 CRL Number:

                2

Revoked Certificates:

    Serial Number: 01

    ......

原文地址:https://www.cnblogs.com/langgeniubi/p/13622685.html