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


    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

        ......

  • 相关阅读:
    salesforce rest api 登录 | Authenticating to Salesforce using REST, OAuth 2.0 and Java
    unknown chromium error 400
    项目管理 status email
    项目管理 管理的是什么?
    java 访问 salesforece rest api
    高质量的软件是否值得付出代价?Martin Flower
    Python 3 os.walk使用详解
    体验Managed Extensibility Framework精妙的设计
    分享插件平台相关的源码分析——SharpDevelop、Composition Application Block、Eclipse OSGi、ObjectBuilder
    分享一个与硬件通讯的分布式监控与远程控制程序的设计(上:自动升级与异步事件)
  • 原文地址:https://www.cnblogs.com/langgeniubi/p/13622685.html
Copyright © 2020-2023  润新知