(1) 创建CA相关目录和文件
[root@CentOS8 test]#mkdir -pv /etc/pki/CA/{certs,crl,newcerts,private}
mkdir: created directory ‘/etc/pki/CA‘
mkdir: created directory ‘/etc/pki/CA/certs‘
mkdir: created directory ‘/etc/pki/CA/crl‘
mkdir: created directory ‘/etc/pki/CA/newcerts‘
mkdir: created directory ‘/etc/pki/CA/private‘
[root@CentOS8 test]#tree /etc/pki/CA
/etc/pki/CA
├── certs
├── crl
├── newcerts
└── private
(2) 创建CA的私钥
[root@CentOS8 test]#cd /etc/pki/CA
[root@CentOS8 CA]#(umask 066; openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus (2 primes)
.................................................................+++++
..........................................................+++++
e is 65537 (0x010001)
[root@CentOS8 CA]#ll
total 0
drwxr-xr-x 2 root root 6 Feb 5 22:13 certs
drwxr-xr-x 2 root root 6 Feb 5 22:13 crl
drwxr-xr-x 2 root root 6 Feb 5 22:13 newcerts
drwxr-xr-x 2 root root 23 Feb 5 22:16 private
[root@CentOS8 CA]#tree /etc/pki/CA/
/etc/pki/CA/
├── certs
├── crl
├── newcerts
└── private
└── cakey.pem
4 directories, 1 file
[root@CentOS8 CA]#ll private/
total 4
-rw------- 1 root root 1679 Feb 5 22:16 cakey.pem
(3) 给CA颁发自签名证书
[root@CentOS8 CA]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
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) []:henan
Locality Name (eg, city) [Default City]:jiaozuo
Organization Name (eg, company) [Default Company Ltd]:DCC
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server‘s hostname) []:ca.lirui.org
Email Address []:aaa@lirui.org
[root@CentOS8 CA]#tree `pwd`
/etc/pki/CA
├── cacert.pem
├── certs
├── crl
├── newcerts
└── private
└── cakey.pem
4 directories, 2 files
**(4) 用户生成私钥和证书申请**
[root@CentOS8 ~]#mkdir /data/app1
[root@CentOS8 app1]#(umask 066; openssl genrsa -out /data/app1/app1.key 2048)
Generating RSA private key, 2048 bit long modulus (2 primes)
.........+++++
............................................................................................................................................................................................+++++
e is 65537 (0x010001)
[root@CentOS8 app1]#openssl req -new -key /data/app1/app1.key -out /data/app1/app1.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) []:henan
Locality Name (eg, city) [Default City]:jiaozuo
Organization Name (eg, company) [Default Company Ltd]:DCC
Organizational Unit Name (eg, section) []:it
Common Name (eg, your name or your server‘s hostname) []:
Email Address []:
Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@CentOS8 app1]#ll
total 8
-rw-r--r-- 1 root root 964 Feb 6 23:03 app1.csr
-rw------- 1 root root 1675 Feb 6 23:01 app1.key
默认有三项内容必须和CA一致:国家,省份,组织,如果不同,会出现错误提示
**(5) CA颁发证书**
[root@CentOS8 app1]#openssl ca -in /data/app1/app1.csr -out /etc/pki/CA/certs/app1.crt -days 1000
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 10 (0xa)
Validity
Not Before: Feb 6 15:13:26 2021 GMT
Not After : Nov 3 15:13:26 2023 GMT
Subject:
countryName = CN
stateOrProvinceName = henan
organizationName = DCC
organizationalUnitName = IT
commonName = app1.lirui.org
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
C6:76:BA:AB:AF:2D:F7:50:02:F9:37:A1:18:3B:F5:69:37:61:5F:AA
X509v3 Authority Key Identifier:
keyid:C0:40:4F:D3:4A:1D:E8:33:45:70:4E:1E:31:FD:D2:00:57:1F:35:D7
Certificate is to be certified until Nov 3 15:13:26 2023 GMT (1000 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@CentOS8 app1]#cd /etc/pki/CA
[root@CentOS8 CA]#tree
.
├── cacert.pem
├── certs
│?? └── app1.crt
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts
│?? └── 0A.pem
├── private
│?? └── cakey.pem
├── serial
└── serial.old
4 directories, 9 files
(6) 查看证书
[root@CentOS8 CA]#openssl x509 -in /etc/pki/CA/certs/app1.crt -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 10 (0xa)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = CN, ST = henan, L = jiaozuo, O = DCC, OU = IT, CN = ca.lirui.org, emailAddress = aaa@lirui.org
Validity
Not Before: Feb 6 15:13:26 2021 GMT
Not After : Nov 3 15:13:26 2023 GMT
Subject: C = CN, ST = henan, O = DCC, OU = IT, CN = app1.lirui.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:9d:b2:71:a7:57:34:75:43:9c:0b:b5:2f:43:fd:
5d:ee:55:69:e4:f5:a7:c8:03:bb:0b:1f:e5:ab:81:
b8:a2:f1:03:6f:fa:4b:18:ac:1e:ba:ad:ba:3b:39:
2b:4e:fe:c7:49:c8:8f:12:e0:fd:0d:66:87:8e:ab:
70:79:70:be:09:d9:ba:85:77:60:96:35:61:b8:aa:
07:02:a9:c6:7d:c9:44:32:cb:d0:f8:b5:48:2a:65:
30:9a:ce:a5:af:52:02:c8:88:60:ae:ae:fc:a3:96:
e0:0c:85:ab:01:18:ff:af:12:c3:86:16:2d:f1:36:
48:49:73:ca:ba:92:11:41:e4:8b:62:a8:18:15:4c:
e0:1c:b6:9c:b2:45:39:2b:66:43:a6:b5:21:75:45:
b4:6b:11:38:e6:91:f2:28:a3:ee:89:01:4e:85:9e:
dd:70:f6:3d:cf:1d:3b:16:57:96:18:6a:65:41:36:
64:94:4b:b0:4c:3e:63:ca:90:a4:a8:2d:07:58:ee:
6a:cd:ee:69:e3:1f:46:72:a7:64:a7:dc:88:77:5a:
6f:8b:6a:bb:4c:08:fa:bb:2b:68:01:71:e9:b3:92:
8a:83:bd:fd:fc:6c:3d:9a:9c:20:d1:15:c8:f3:cb:
c4:cb:44:c6:2d:42:5f:44:37:67:53:8a:b1:fd:ea:
eb:b1
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
C6:76:BA:AB:AF:2D:F7:50:02:F9:37:A1:18:3B:F5:69:37:61:5F:AA
X509v3 Authority Key Identifier:
keyid:C0:40:4F:D3:4A:1D:E8:33:45:70:4E:1E:31:FD:D2:00:57:1F:35:D7
Signature Algorithm: sha256WithRSAEncryption
4c:e3:9f:2f:d6:d9:50:85:03:e1:42:14:0e:91:ed:6e:48:e2:
22:4b:75:84:22:ae:10:62:a7:90:66:06:27:24:49:4d:92:73:
15:ca:6e:90:44:40:88:d1:90:bd:83:34:4c:99:97:08:4b:92:
10:40:2f:ad:f6:3e:b2:36:b7:b3:28:ae:17:22:4a:a0:9e:0a:
94:c4:56:5c:5c:fe:2e:26:ef:f0:31:1c:7d:8f:31:28:d6:a6:
60:01:38:29:b8:41:13:2b:3d:2b:f1:7b:99:f1:03:59:b4:68:
6a:23:32:d7:ea:3b:8d:c9:ea:87:cd:d8:04:86:1e:b5:c0:73:
7e:00:a0:bf:da:2c:b7:77:fb:44:f7:87:8c:9b:ad:6d:78:d0:
35:7d:e5:aa:18:e4:8b:6e:44:85:ef:e9:b9:f4:dc:49:47:2e:
bb:ca:53:a8:8b:06:ae:6d:aa:2a:c9:a4:58:89:72:59:77:79:
de:c0:1e:05:23:f6:fa:08:ca:37:90:8d:58:4c:1a:a7:65:44:
82:2b:b4:ef:b3:d7:41:02:f5:b9:b6:e8:9f:01:f7:b7:bf:2f:
6b:b4:9b:88:f3:76:77:c8:d7:02:b1:95:de:00:79:5e:b4:86:
8e:68:df:99:e2:9a:32:be:a6:f5:a8:65:35:00:7a:3d:91:27:
38:40:c0:c1
**(7) 将证书相关文件发送到用户端使用**
[root@CentOS8 CA]#cp /etc/pki/CA/certs/app1.crt /data/app1
[root@CentOS8 CA]#tree /data/app1
/data/app1
├── app1.crt
├── app1.csr
└── app1.key
0 directories, 3 files
2、总结ssh常用参数、用法
命令格式:
ssh [option] [user@]host [COMMAND]
ssh [option] [-l user] host [COMMAND]
常用选项
-p port:远程服务器监听的端口
-b 指定连接的源IP
-v 调试模式
-C 压缩方式
-X 支持x11转发
-t 强制伪tty分配,如:ssh -t remoteserver1 ssh -t remoteserver2 ssh remoteserver3
-o option 如:-o StrictHostKeyChecking=no
-i <file> 指定私钥文件路径,实现基于key验证,默认使用文件: ~/.ssh/id_dsa,~/.ssh/id_ecdsa, ~/.ssh/id_ed25519,~/.ssh/id_rsa等
3、总结sshd服务常用参数
服务器端的配置文件: /etc/ssh/sshd_config
常用参数:
Port
ListenAddress ip
LoginGraceTime 2m
PermitRootLogin yes #默认ubuntu不允许root远程ssh登录
StrictModes yes #检查.ssh/文件的所有者,权限等
MaxAuthTries 6 #
MaxSessions 10 #同一个连接最大会话
PubkeyAuthentication yes #基于key验证
PermitEmptyPasswords no #空密码连接
PasswordAuthentication yes #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #单位:秒
ClientAliveCountMax 3 #默认3
UseDNS yes #提高速度可改为no
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups #未认证连接最大值,默认值10
Banner /path/file