作业一

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

[root@centos7 ~]#gpg --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: centos
Email address: 
Comment: 
You selected this USER-ID:
    "centos"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key C8EA44DE marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/C8EA44DE 2020-09-05
      Key fingerprint = 3DE2 C6AF B0B5 0D82 79F8  770C EF64 9FA5 C8EA 44DE
uid                  centos
sub   2048R/13943D46 2020-09-05

[root@centos7 ~]#ll .gnupg/
total 28
-rw------- 1 root root 7680 Sep  5 18:55 gpg.conf
drwx------ 2 root root    6 Sep  5 19:11 private-keys-v1.d
-rw------- 1 root root 1166 Sep  5 19:14 pubring.gpg
-rw------- 1 root root 1166 Sep  5 19:14 pubring.gpg~
-rw------- 1 root root  600 Sep  5 19:14 random_seed
-rw------- 1 root root 2543 Sep  5 19:14 secring.gpg
srwxr-xr-x 1 root root    0 Sep  5 19:14 S.gpg-agent
-rw------- 1 root root 1280 Sep  5 19:14 trustdb.gpg

[root@centos7 ~]#gpg --list-key
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/C8EA44DE 2020-09-05
uid                  centos
sub   2048R/13943D46 2020-09-05

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

[root@centos7 ~]#gpg -a --export -o centos.pubkey
[root@centos7 ~]#scp centos.pubkey 10.0.0.8:/data/
root@10.0.0.8's password: 
centos.pubkey                                            100% 1683     1.4MB/s   00:00    

[root@centos8 data]#ls
centos.pubkey

[root@centos8 data]#echo linux > file.txt

[root@centos8 data]#gpg --import centos.pubkey 
gpg: key EF649FA5C8EA44DE: public key "centos" imported
gpg: Total number processed: 1
gpg:               imported: 1

[root@centos8 data]#gpg --list-key
/root/.gnupg/pubring.kbx
------------------------
pub   rsa2048 2020-09-05 [SC]
      3DE2C6AFB0B50D8279F8770CEF649FA5C8EA44DE
uid           [ unknown] centos
sub   rsa2048 2020-09-05 [E]

[root@centos8 data]#gpg -e -r centos file.txt
gpg: 8314610013943D46: There is no assurance this key belongs to the named user
sub  rsa2048/8314610013943D46 2020-09-05 centos
 Primary key fingerprint: 3DE2 C6AF B0B5 0D82 79F8  770C EF64 9FA5 C8EA 44DE
      Subkey fingerprint: E190 BD7D CFF2 4D26 8206  CF0E 8314 6100 1394 3D46

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Use this key anyway? (y/N) y

[root@centos8 data]#ls
centos.pubkey  file.txt  file.txt.gpg

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

[root@centos7 ~]#scp 10.0.0.8:/data/file.txt.gpg /data/
root@10.0.0.8's password: 
file.txt.gpg                                             100%  346   225.7KB/s   00:00    

[root@centos7 data]#ls
file.txt.gpg

[root@centos7 data]#gpg -o file.txt -d file.txt.gpg 

You need a passphrase to unlock the secret key for
user: "centos"
2048-bit RSA key, ID 13943D46, created 2020-09-05 (main key ID C8EA44DE)

gpg: encrypted with 2048-bit RSA key, ID 13943D46, created 2020-09-05
      "centos"
[root@centos7 data]#cat file.txt
linux

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

[root@centos7 pki]#cd /etc/pki/CA/
[root@centos7 CA]#ls
certs  crl  newcerts  private

[root@centos7 CA]#touch index.txt
[root@centos7 CA]#echo 01 > serial
[root@centos7 CA]#tree
.
├── certs
├── crl
├── index.txt
├── newcerts
├── private
└── serial

4 directories, 2 files

[root@centos7 CA]#(umask 066; openssl genrsa -out private/cakey.pem 4096)
Generating RSA private key, 4096 bit long modulus
.....................................................................++
.++
e is 65537 (0x10001)

[root@centos7 CA]#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:bj
Locality Name (eg, city) [Default City]:bj
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:M42
Common Name (eg, your name or your server's hostname) []:ca.magedu.com
Email Address []:            

[root@centos7 CA]#tree
.
├── cacert.pem
├── certs
├── crl
├── index.txt
├── newcerts
├── private
│   └── cakey.pem
└── serial

4 directories, 4 files

[root@centos7 CA]#openssl x509 -in cacert.pem -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            93:cc:7f:8a:ad:90:9a:61
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=CN, ST=bj, L=bj, O=magedu, OU=M42, CN=ca.magedu.com
        Validity
            Not Before: Sep  5 11:49:19 2020 GMT
            Not After : Sep  3 11:49:19 2030 GMT
        Subject: C=CN, ST=bj, L=bj, O=magedu, OU=M42, CN=ca.magedu.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (4096 bit)
                Modulus:
                    00:9c:e8:9a:c9:2d:4d:52:78:68:0d:3f:b2:d9:21:
                    d6:eb:9e:1d:25:02:4e:f2:3d:dc:a5:a7:dc:6f:70:
                    e2:aa:37:1e:44:41:28:60:d5:7c:ae:2c:8d:55:95:
                    86:05:4d:db:a5:ad:a2:fb:66:b0:ff:e4:20:72:ab:
                    b6:b4:2b:ae:1d:d9:ff:97:6a:3b:58:48:a8:31:51:
                    b5:46:67:c3:7d:f9:4e:41:ea:a8:b0:08:91:4c:4b:
                    88:9c:8d:38:9c:c0:ce:c1:51:7b:5e:5d:a2:f7:ba:
                    61:7d:85:51:a4:e9:b2:cf:84:8b:36:b0:10:10:b9:
                    37:ee:51:1e:1e:b7:b0:31:68:4b:c7:dc:93:37:8a:
                    76:e3:66:86:d8:f7:f1:55:b6:d6:63:5b:c2:44:71:
                    f5:c6:6e:b5:c3:ea:5a:f9:19:04:8a:44:2a:0a:ea:
                    0f:ff:3b:2d:a0:61:fe:7c:c3:45:18:16:05:44:8c:
                    90:fc:6f:fc:9a:ae:b3:16:3a:01:44:4b:4b:95:83:
                    56:89:72:02:17:1a:be:31:9c:75:ce:42:f3:c3:d9:
                    b1:ab:e4:26:4f:ff:30:ce:5c:0b:de:f8:12:63:5d:
                    5f:29:47:61:3c:db:a3:c4:37:4f:64:0f:8d:94:9b:
                    bb:17:56:2f:b4:8d:b2:a0:5f:ca:cc:81:90:58:d4:
                    08:c7:82:36:f0:f4:60:bc:e3:5d:c7:48:a0:0c:b5:
                    23:a3:90:f1:44:c8:80:99:20:26:9e:4c:d7:0b:bf:
                    85:e5:e5:93:fd:da:ae:39:b2:ff:f2:2f:e6:fd:87:
                    07:27:31:79:63:ac:a1:4c:9d:b0:30:7a:1f:70:b9:
                    a1:ca:b6:3f:e3:4b:01:6d:71:c2:b4:3a:71:0b:94:
                    33:78:20:85:ec:9b:2d:18:25:73:0e:b0:2f:57:a9:
                    96:9f:5e:45:e7:36:4b:8f:76:82:89:8f:72:13:12:
                    1b:c4:80:06:92:52:f5:cd:2c:4a:cb:bc:e4:d5:04:
                    39:a6:8a:2c:90:ae:a3:a3:8b:5b:2b:79:69:bc:5a:
                    55:67:7f:40:ed:65:46:b9:be:ad:32:08:24:14:ea:
                    a9:0f:4b:78:71:2f:48:ba:d3:d0:fd:1b:56:16:da:
                    1e:8d:48:bb:9b:8d:29:ea:b9:81:86:c5:26:46:c8:
                    f3:d3:d3:21:19:2c:08:dd:3c:f5:49:c2:cd:34:7a:
                    7c:58:57:8e:04:74:48:4f:17:9f:1b:c1:6c:c4:7f:
                    b8:ec:fa:00:8c:6e:e6:6d:9d:54:69:16:aa:53:6d:
                    f9:4e:2a:31:60:07:bd:98:f9:42:ad:f0:d9:21:0a:
                    d9:a6:d3:e8:0e:6e:97:7f:ab:67:13:f1:e2:7c:aa:
                    3f:4f:17
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                80:AA:D3:C7:05:37:57:44:2E:7E:26:19:7A:76:02:47:F6:47:FD:6C
            X509v3 Authority Key Identifier: 
                keyid:80:AA:D3:C7:05:37:57:44:2E:7E:26:19:7A:76:02:47:F6:47:FD:6C

            X509v3 Basic Constraints: 
                CA:TRUE
    Signature Algorithm: sha256WithRSAEncryption
         60:67:2f:a8:6d:15:3d:d2:5b:21:0e:e0:80:02:35:6e:40:4a:
         85:a2:31:26:6c:e0:8b:0d:10:53:b8:4c:25:46:78:dd:e6:41:
         03:dd:b1:91:1a:96:56:3a:bf:0b:8c:16:98:b8:21:44:71:a2:
         5c:5d:49:55:34:cb:74:58:84:21:ba:ea:75:d7:4c:f5:f1:d7:
         76:a2:53:56:26:1b:88:dc:b7:4b:28:18:34:9b:4c:56:dc:ed:
         a9:e4:2a:33:dd:93:09:c6:43:bf:67:22:7a:7b:fe:a5:21:1c:
         71:67:75:83:64:62:7f:b3:d0:2d:4f:ab:42:f8:95:91:01:fe:
         71:77:36:9d:37:12:ef:39:93:f9:56:68:da:69:09:9a:50:f1:
         87:af:ab:5b:37:39:7a:27:69:98:a6:c5:c2:61:17:1c:b7:fe:
         fe:b6:5e:e9:10:fb:34:fa:55:72:88:ff:20:6e:40:fd:ba:d7:
         7f:56:f9:8b:4d:cd:96:85:2a:6c:88:51:d5:f6:a3:70:b9:a2:
         9f:fd:a1:6d:57:48:00:dc:cd:fe:e0:31:d7:67:2b:ce:88:b1:
         4c:dd:49:ef:03:f3:9e:1e:b9:be:73:82:7c:aa:a2:06:d6:48:
         66:7a:da:84:df:bb:03:9b:41:b3:1b:f2:12:7d:75:a6:12:7f:
         b8:f6:58:06:e0:f1:94:6c:ab:42:c6:d5:98:f1:03:3e:5e:14:
         a8:f3:ad:c5:37:df:fe:21:24:62:d4:21:86:d9:0a:ea:d4:07:
         49:b6:82:a6:67:70:7e:f4:7f:ed:f9:1d:07:86:41:48:3f:e1:
         a9:e0:07:fe:63:5a:eb:fd:92:c7:16:d2:d0:3f:15:98:57:03:
         f2:cc:0b:58:5f:00:19:c3:4e:df:40:d7:07:10:de:f5:5c:a9:
         73:c2:83:03:78:31:92:68:5a:8d:7b:d8:00:8f:99:39:ec:0f:
         19:5f:7a:ae:c6:85:e5:2c:12:f7:ed:4a:f4:20:b9:15:48:b9:
         cc:c0:f2:1c:1c:31:3d:82:38:f2:b7:e0:02:94:c2:de:ba:70:
         bb:6e:94:d9:58:5a:24:2d:17:44:2b:cf:ac:f4:e5:b2:ca:e4:
         7a:2b:af:c2:6a:70:53:34:91:ae:12:66:12:8b:fa:21:03:4d:
         18:5f:71:67:f0:04:cc:27:1a:b6:3d:61:cc:e0:b8:fb:14:05:
         a6:26:f9:44:95:7a:d4:0e:32:fb:5e:38:ea:52:6f:f5:dc:8e:
         25:22:c7:e7:94:22:5f:d2:1c:ac:05:d6:30:68:6f:ee:a3:96:
         72:c3:09:52:88:c1:4a:d8:30:3b:05:80:cd:ad:89:7e:89:a8:
         80:d3:bf:76:59:21:40:4e

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

[root@centos7 CA]#mkdir /data/app
[root@centos7 CA]#(umask 066; openssl genrsa -out /data/app/app.key 1024)
Generating RSA private key, 1024 bit long modulus
....++++++
.................................++++++
e is 65537 (0x10001)

[root@centos7 CA]#openssl req -new -key /data/app/app.key -out /data/app/app.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:bj
Locality Name (eg, city) [Default City]:bj
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:app
Common Name (eg, your name or your server's hostname) []:app.magedu.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

[root@centos7 CA]#openssl ca -in /data/app/app.csr -out /etc/pki/CA/app.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Sep  5 11:59:03 2020 GMT
            Not After : Sep  5 11:59:03 2021 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = bj
            localityName              = bj
            organizationName          = magedu
            organizationalUnitName    = app
            commonName                = app.magedu.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                9B:DD:AE:3A:59:B7:8E:1D:70:65:17:86:18:5C:46:D7:B0:2E:E1:81
            X509v3 Authority Key Identifier: 
                keyid:80:AA:D3:C7:05:37:57:44:2E:7E:26:19:7A:76:02:47:F6:47:FD:6C

Certificate is to be certified until Sep  5 11:59:03 2021 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

[root@centos7 CA]#tree
.
├── app.crt
├── app.csr
├── cacert.pem
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts
│   └── 01.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old

4 directories, 10 files

[root@centos7 CA]#openssl x509 -in app.crt -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=CN, ST=bj, L=bj, O=magedu, OU=M42, CN=ca.magedu.com
        Validity
            Not Before: Sep  5 11:59:03 2020 GMT
            Not After : Sep  5 11:59:03 2021 GMT
        Subject: C=CN, ST=bj, L=bj, O=magedu, OU=app, CN=app.magedu.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:ad:0c:b4:cc:e1:e2:63:cb:ff:c4:25:47:26:1c:
                    d3:e6:ce:03:94:ae:61:38:d1:d8:ac:cf:f4:16:60:
                    cd:e9:8c:b3:43:25:a3:2e:de:26:92:33:a6:eb:53:
                    ea:13:61:df:0a:62:76:2c:46:35:37:04:de:a4:f9:
                    cc:58:20:fe:86:fd:97:b7:54:61:1f:32:86:e4:c6:
                    47:0d:1f:fa:0a:55:47:b1:2d:ea:52:15:40:e7:c7:
                    5d:a5:ab:93:97:4c:98:9d:b6:e9:f2:af:1e:95:4c:
                    67:69:58:4c:e5:a9:01:22:78:5c:14:9c:5f:aa:93:
                    ff:27:f8:79:b5:69:e9:6e:97
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                9B:DD:AE:3A:59:B7:8E:1D:70:65:17:86:18:5C:46:D7:B0:2E:E1:81
            X509v3 Authority Key Identifier: 
                keyid:80:AA:D3:C7:05:37:57:44:2E:7E:26:19:7A:76:02:47:F6:47:FD:6C

    Signature Algorithm: sha256WithRSAEncryption
         78:db:3c:9d:bc:60:f2:0b:2a:b7:ec:7c:c9:95:e0:e6:ef:5c:
         b8:67:f2:62:81:b9:22:fb:33:19:12:4e:66:2c:96:4d:6e:79:
         a9:d5:fd:c0:34:d9:b1:9c:82:0a:79:77:fc:d0:a6:cd:f9:88:
         b7:6a:77:e2:a1:33:1d:94:3c:37:4c:d7:4c:cd:ae:79:a6:c9:
         6f:4b:d3:70:c6:5c:19:8f:38:68:f2:13:7b:56:42:a0:fd:01:
         85:23:64:b3:48:e1:6f:2d:ab:ea:b4:67:ab:1a:94:47:e1:ca:
         47:77:55:e8:e3:fb:a7:4c:02:56:e5:8c:03:0d:a0:d1:2b:c8:
         27:e7:8e:c4:26:9b:fb:43:38:df:2b:5b:c5:81:65:87:f5:4a:
         5a:43:ca:e3:ee:64:83:20:37:2f:5d:6e:e3:e0:5b:c0:9c:d8:
         bb:04:49:3e:95:2c:30:f5:0e:03:b1:ab:bb:70:7d:17:22:1a:
         a0:1c:f1:62:4f:f5:f4:df:f4:09:90:6e:41:9d:f3:e6:6d:45:
         e6:9a:14:f3:65:71:13:2a:44:84:71:71:c2:d8:3d:45:f1:37:
         33:3c:d0:4f:55:9e:1e:8e:db:98:e5:58:23:90:95:d3:00:ae:
         e2:de:81:e5:2f:49:d0:2b:a1:fe:51:12:31:56:12:6c:9e:9d:
         68:f5:1f:e3:d1:64:08:29:bb:de:01:9e:94:67:f0:57:3e:8c:
         6c:99:b0:f8:44:b9:97:c7:d6:6b:84:36:fb:16:97:fe:b2:09:
         e3:ea:e8:44:cd:86:17:b5:1e:3b:7b:3d:39:b5:41:38:4a:e5:
         da:22:fb:76:b3:d6:93:f7:0a:ab:2f:5a:cf:8c:72:ef:0c:04:
         a6:8a:76:73:c7:41:62:83:be:6a:a8:30:42:ec:54:d5:25:48:
         27:e9:90:0a:4a:43:c1:53:54:e5:c3:a0:a2:39:eb:bf:9d:06:
         a5:60:ff:06:b2:d0:8d:51:38:8b:a1:ba:96:d8:9e:3c:95:55:
         30:d5:df:b5:3a:66:26:a1:30:77:a8:1b:72:bb:23:93:de:30:
         ba:f1:f4:56:a5:39:76:22:d0:e2:f0:9b:aa:ac:7b:63:a8:dd:
         8e:9b:d1:60:77:99:fe:5e:c5:95:d4:f9:1c:a3:75:28:58:db:
         16:de:fc:dc:ad:be:0a:97:6a:85:38:d1:a2:30:ab:7c:cd:3b:
         41:72:02:0f:9e:a3:51:f1:2d:10:64:44:d0:df:77:f0:a5:e9:
         d9:23:32:62:51:9a:ea:28:03:59:e1:81:f0:d4:3e:0a:e4:be:
         f6:eb:55:65:a5:66:7f:af:6f:e0:94:30:b8:22:c9:94:1d:a3:
         a1:e1:e6:97:20:7b:8d:0a

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

[root@centos7 CA]#cat index.txt
V	210905115903Z		01	unknown	/C=CN/ST=bj/L=bj/O=magedu/OU=app/CN=app.magedu.com

[root@centos7 CA]#openssl ca -status 01
Using configuration from /etc/pki/tls/openssl.cnf
01=Valid (V)

[root@centos7 CA]#openssl ca -revoke newcerts/01.pem 
Using configuration from /etc/pki/tls/openssl.cnf
Revoking Certificate 01.
Data Base Updated

[root@centos7 CA]#openssl ca -status 01
Using configuration from /etc/pki/tls/openssl.cnf
01=Revoked (R)

posted @ 2020-09-05 19:10  进击的子卿  阅读(252)  评论(0)    收藏  举报