准备openssl dhparamgenrsagenrsa生成私钥输出到文件加个密码帮助还有无参数时rsa 查看私钥、导出公钥去除密码加密码更改密码输入原密码,参数指定新密码仅输入新密码同时输入原密码、新密码校验文件是否被修改speed加密性能测试rank生成伪随机数 作密码生成器passwdpkcs12 p12 pfx查看一个通过在线pfx生成网站上制作的文件openssl pkcs12制作转换pfxpfx转pem-->crt key只导出ca证书或client certificate证书pkcs12帮助细节PEMjks(多用于tomcat)类似于pfx生成jks导出jks为pem补全证书链文件格式与类型配置实例yum连接双向认证yum源nginxtomcatiis证书管理iis6 (2003)iis7.5(server2008R2)x509生成证书部分信息输出ca签暑选项流程证书查看命令查看常识应用ssh密钥生成yum curl 使用网站使用其它工具导出公钥网站https安全等级检测(推荐)在线生成网站证书相关refers
windows版本的往往需要额外支持下载:
https://wiki.openssl.org/index.php/Binaries
https://slproweb.com/products/Win32OpenSSL.html
安装后将安装路径中的bin目录,添加到环境变量:path
openssl dhparam用于生成和管理dh文件。dh(Diffie-Hellman)是著名的密钥交换协议,或称为密钥协商协议,它可以保证通信双方安全地交换密钥。但注意,它不是加密算法,所以不提供加密功能,仅仅只是保护密钥交换的过程。在openvpn中就使用了该交换协议。关于dh算法的整个过程,见下文。
openssl dhparam命令集合了老版本的openssl dh和openssl gendh,后两者可能已经失效了,即使存在也仅表示未来另有用途。
xxxxxxxxxx
71[root@centos ~]# openssl dhparam -out /some/dir/dhpara.pem 4096
2Generating DH parameters, 4096 bit long safe prime, generator 2
3This is going to take a long time
4......................................................................................................................................................................................................+............................................................................................................................................+.............................+.......................................+.....................................................................................................................+...+.................................................................+.............................+............................视电脑性能确定生成时间,可作为cpu占用命令使用。4核需要重启动1-4分钟左右。
5
6
7
纯文本查看
cat dh.pem
xxxxxxxxxx
131-----BEGIN DH PARAMETERS-----
2MIICCAKCAgEA0cbLOZtUVZy3sjcItQfhEaFctopJ2qE5Wu8/Zl/tK0gh9vWL1Gs4
3HlkFEm5K61ziSwvQH+Se1OI4nGGDuycqrF1EWtZy9aSFHCKspWYZ+EhWrLnNMoxS
4nthhieEfDwINWXxT4YLry5+ryafokr3o9EDRXZhUhCyn1mMQAzVAqh9qXFuCtUaw
5DmSrvC381jstQv2PaTURExA8LTYG5ib8UQ8sQqs6iwJCpq0WXMtlgYutEGED7ECN
6H2J111WyweTfUMGUUEshMWs6zKUaVzCuYkPd/ZUdsVxvAvTO5ipmf2YT+tVLEbZA
7zJPofLlIE5rJ4nWwXDDkdFJEMZBzLh50DbrIMGpKS0fcLqzgGAJDbyZq4ICmPfHJ
8dzinNEnqDDRF7QSSKMozjqzcKUr3VqF0hxOhfBVUPdI4JjEyRSdqdGbPjtZffANx
9lUSBeyeLm8oS8GN9wxOrOlmJs1UnhGxJwbx9bmCuDlGRvJyCxW50YJAamJy+mciH
10MfilzE9YSEoyu1uSBDR+iuhKKGldoASwVZ1NoPP55GxTJw0YamFxiU771WgSXXEJ
11Ym6Q5NSb8E7i4J7o6GtqVaVK7jqQhvzfOl8W0ALEietHfqDYnergkWx2L5cWmycp
125DwLd9Fk7RWBSHqmtdqwWX0ssbYxcggEytvPioliPRWmESJZNR3fWlsCAQI=
13-----END DH PARAMETERS-----
直接替换文件内容,同时添加个性注释段在结尾
xxxxxxxxxx
241rm -fr /opt/ecloud_server/ecloud-nginx/dhparam.pem
2cat << EOF > /opt/ecloud_server/ecloud-nginx/dhparam.pem
3-----BEGIN DH PARAMETERS-----
4MIICCAKCAgEA0cbLOZtUVZy3sjcItQfhEaFctopJ2qE5Wu8/Zl/tK0gh9vWL1Gs4
5HlkFEm5K61ziSwvQH+Se1OI4nGGDuycqrF1EWtZy9aSFHCKspWYZ+EhWrLnNMoxS
6nthhieEfDwINWXxT4YLry5+ryafokr3o9EDRXZhUhCyn1mMQAzVAqh9qXFuCtUaw
7DmSrvC381jstQv2PaTURExA8LTYG5ib8UQ8sQqs6iwJCpq0WXMtlgYutEGED7ECN
8H2J111WyweTfUMGUUEshMWs6zKUaVzCuYkPd/ZUdsVxvAvTO5ipmf2YT+tVLEbZA
9zJPofLlIE5rJ4nWwXDDkdFJEMZBzLh50DbrIMGpKS0fcLqzgGAJDbyZq4ICmPfHJ
10dzinNEnqDDRF7QSSKMozjqzcKUr3VqF0hxOhfBVUPdI4JjEyRSdqdGbPjtZffANx
11lUSBeyeLm8oS8GN9wxOrOlmJs1UnhGxJwbx9bmCuDlGRvJyCxW50YJAamJy+mciH
12MfilzE9YSEoyu1uSBDR+iuhKKGldoASwVZ1NoPP55GxTJw0YamFxiU771WgSXXEJ
13Ym6Q5NSb8E7i4J7o6GtqVaVK7jqQhvzfOl8W0ALEietHfqDYnergkWx2L5cWmycp
145DwLd9Fk7RWBSHqmtdqwWX0ssbYxcggEytvPioliPRWmESJZNR3fWlsCAQI=
15-----END DH PARAMETERS-----
16
17-----BEGIN DH REMAKKS-----
18# generate pem
19openssl dhparam -out /opt/path/to/nginx/dhparam.pem 4096
20# resolve pem
21openssl dhparam -in /opt/path/to/nginx/dhparam.pem -text
22-----END DH REMAKKS-----
23
24EOF
解析时原pem内容会在最后输出。
xxxxxxxxxx
281[root@centos ~]# openssl dhparam -in /opt/ecloud_server/ecloud-nginx/dhparam.pem -text
2DH Parameters: (4096 bit)
3prime:
400:d1:c6:cb:39:9b:54:55:9c:b7:b2:37:08:b5:07:
5e1:11:a1:5c:b6:8a:49:da:a1:39:5a:ef:3f:66:5f:
6ed:2b:48:21:f6:f5:8b:d4:6b:38:1e:59:05:12:6e:
7...
8... 省略30行
9...
1004:ca:db:cf:8a:89:62:3d:15:a6:11:22:59:35:1d:
11df:5a:5b
12generator: 2 (0x2)
13-----BEGIN DH PARAMETERS-----
14MIICCAKCAgEA0cbLOZtUVZy3sjcItQfhEaFctopJ2qE5Wu8/Zl/tK0gh9vWL1Gs4
15HlkFEm5K61ziSwvQH+Se1OI4nGGDuycqrF1EWtZy9aSFHCKspWYZ+EhWrLnNMoxS
16nthhieEfDwINWXxT4YLry5+ryafokr3o9EDRXZhUhCyn1mMQAzVAqh9qXFuCtUaw
17DmSrvC381jstQv2PaTURExA8LTYG5ib8UQ8sQqs6iwJCpq0WXMtlgYutEGED7ECN
18H2J111WyweTfUMGUUEshMWs6zKUaVzCuYkPd/ZUdsVxvAvTO5ipmf2YT+tVLEbZA
19zJPofLlIE5rJ4nWwXDDkdFJEMZBzLh50DbrIMGpKS0fcLqzgGAJDbyZq4ICmPfHJ
20dzinNEnqDDRF7QSSKMozjqzcKUr3VqF0hxOhfBVUPdI4JjEyRSdqdGbPjtZffANx
21lUSBeyeLm8oS8GN9wxOrOlmJs1UnhGxJwbx9bmCuDlGRvJyCxW50YJAamJy+mciH
22MfilzE9YSEoyu1uSBDR+iuhKKGldoASwVZ1NoPP55GxTJw0YamFxiU771WgSXXEJ
23Ym6Q5NSb8E7i4J7o6GtqVaVK7jqQhvzfOl8W0ALEietHfqDYnergkWx2L5cWmycp
245DwLd9Fk7RWBSHqmtdqwWX0ssbYxcggEytvPioliPRWmESJZNR3fWlsCAQI=
25-----END DH PARAMETERS-----
26
27
28
哪里可以用:?ssh、crt
以下直接输出不同位数的rsa到控制台,不生成文件,可另存为
xxxxxxxxxx
31-----BEGIN RSA PRIVATE KEY-----
2只需要这2段之间的内容
3-----END RSA PRIVATE KEY-----
xxxxxxxxxx
531
2[root@centos openssl_test]# openssl genrsa 512
3Generating RSA private key, 512 bit long modulus
4.....................++++++++++++
5.....++++++++++++
6e is 65537 (0x10001)
7-----BEGIN RSA PRIVATE KEY-----
8MIIBOgIBAAJBALjm2uAPy097+KEMz90tgSIuEzxL7s0FBI9r2jtZhWlH1bPxUfCX
9Km1cbI42DZeJZp+ZSKO0Q69qwhd77Tms33cCAwEAAQJAc2r/Y2/YfFQpXfaOZkT6
10X6idLz1C4k1ojFJJllSKN62jy370f49Rp3WydxSAlz9HlRiijGzrUavKt30ycJlr
11cQIhAO6j3Il1DuiOuQ78Vd2S4rM+YNZgJfB+yNUcGiowoRNfAiEAxlo80g3CXAwi
125/GJ7qadu/6QpvKm/Q9vKpT3p7pEgukCICA1E1Wl684tPQKtwbT21wvT9mPYdCZi
13Jh7E/S8GgybHAiBSOEmJ0MZGHYnCl27TjCFKMiWH7oGl2GX+Qq29ywpnMQIhAKWx
14HEbGNhbCp4MrVmyNH/0g9y4wVDgrn2TVfBPi0O7/
15-----END RSA PRIVATE KEY-----
16[root@centos openssl_test]# openssl genrsa 2048
17Generating RSA private key, 2048 bit long modulus
18.................................................................................................................................................+++
19.........+++
20e is 65537 (0x10001)
21-----BEGIN RSA PRIVATE KEY-----
22MIIEpAIBAAKCAQEA3yaF+bjHyJbHzV1bm734WJYMgmYyCOUGJ5l8zewbHoiqTIhY
23ANERDmQbyteNYYc4LqbkaCuG1U/jkHSLw54Ke1hFJbt2XlAivfB8O0y7kGtFbNMq
24FLjvU9/Xepxi6E1Q/FC/bQF3XEAGubI8SJIt35pd7oNWFLGnx+isMxM9D25L3/e1
25 ...
26 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
27 ...
288t6KKVsCgYBgWbn5suIqOFCFh/WmBSkzHDRfehLbAigBAc9Gy554JV9SdBIeFGnr
29BYxyrMxUdMfhyrJci5MbFX+qunj3pVAc0v/bixUJqAGddeSqmVCRNK/y3nX6gjdi
30hTdlBQFy6djzInr41LKp+B1bV6pWiLCpfwQMZdqWhDOZuVfnwlL+Jw==
31-----END RSA PRIVATE KEY-----
32[root@centos openssl_test]# openssl genrsa 4096
33Generating RSA private key, 4096 bit long modulus
34.....................................++
35.............................................................................................................................++
36e is 65537 (0x10001)
37-----BEGIN RSA PRIVATE KEY-----
38MIIJKAIBAAKCAgEA6D4Y2cYFt5IocTu5v6FTRHJdn+CsmwEdHgJ2uv0Rr8wfa/OC
39gJeC+CGltdfcL5je6ceu7bx+t9B0BQf6P4KB7qIxUBAEwg8N7dR33TwATExml9bM
40vQh1PerC7gCrnAKCv5kYoRFVacI85MezpJqYGBBONxhnjur+CG6NxdM6ZgIhYcYd
41jXVyHYJSO4npkxiVhgJn8zucBBw5i2loNgLuSTsrSiCuwLiFyhuXPKmJIfeLXhQy
42SpxKtyVDD/5U0lwVmYdlIn0EGRE+AJrl5Yn87OikvXjc5mSBCXBL6ZwRyfEfdBNQ
435c9wEh7TOrrZd/fY45Hk2M6ddq4wFrcqNoceXcAj8UtoAmpboUlAyD6Q21YWVIr+
44 ...
45省略备注:4096位 RSA BEGIN -- END 区间总共约48行
46 ...
473QT5HMmnUMfcltujezpSf5G9lWMCzwSYuOahl4cxElUUM75jF458SMIkY4RZZZ9V
48CuC0y5e04F7mwESzwRgHfONovQdRbUudyh1NZ2smQGA9apCxOdfM4jVYgUsK+639
49vCrymAqb2zsk63MXQ2IflgIIp7bHOXn5W69+pZDg5J9M0uprzRx0kqVA3qDvqRgg
505XzO3I5H483+X6ov8JaGOjPVwbfaMmWxc2UpM1WHGZMXyca4Jy09qOZemJs=
51-----END RSA PRIVATE KEY-----
52[root@centos openssl_test]#
53
xxxxxxxxxx
281[root@centos openssl_test]# openssl genrsa -out genrsa_4096.rsa 4096
2Generating RSA private key, 4096 bit long modulus
3................................++
4........................................................++
5e is 65537 (0x10001)
6[root@centos openssl_test]# ls -alh
7total 8.0K
8drwxr-xr-x 2 root root 29 Jul 27 16:19 .
9dr-xr-x---. 13 root root 4.0K Jul 27 16:12 ..
10-rw-r--r-- 1 root root 3.2K Jul 27 16:19 genrsa_4096.rsa
11[root@centos openssl_test]# openssl genrsa -out genrsa_2048.rsa 2048
12Generating RSA private key, 2048 bit long modulus
13........................................................................................................................+++
14.....+++
15e is 65537 (0x10001)
16[root@centos openssl_test]# openssl genrsa -out genrsa_1024.rsa 1024
17Generating RSA private key, 1024 bit long modulus
18..................................................................................................++++++
19.++++++
20e is 65537 (0x10001)
21[root@centos openssl_test]# ls -alh
22total 16K
23drwxr-xr-x 2 root root 75 Jul 27 16:19 .
24dr-xr-x---. 13 root root 4.0K Jul 27 16:12 ..
25-rw-r--r-- 1 root root 887 Jul 27 16:19 genrsa_1024.rsa
26-rw-r--r-- 1 root root 1.7K Jul 27 16:19 genrsa_2048.rsa
27-rw-r--r-- 1 root root 3.2K Jul 27 16:19 genrsa_4096.rsa
28# 可以看到文件大小是成相应的位数关系的,大概是1k、2k、4k,可以通过这个大小判断rsa位数。
xxxxxxxxxx
291[root@centos openssl_test]# openssl genrsa -out genrsa_1024_encrypt.rsa -des3 -passout pass:123456 1024
2Generating RSA private key, 1024 bit long modulus
3...............++++++
4.++++++
5e is 65537 (0x10001)
6[root@centos openssl_test]# openssl genrsa -out genrsa_2048_encrypt.rsa -des3 -passout pass:123456 2048
7Generating RSA private key, 2048 bit long modulus
8...............+++
9.....................................+++
10e is 65537 (0x10001)
11[root@centos openssl_test]# openssl genrsa -out genrsa_4096_encr pt.rsa -des3 -passout pass:123456 4096
12Generating RSA private key, 4096 bit long modulus
13...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................++
14................................++
15e is 65537 (0x10001)
16[root@centos openssl_test]# ls -alh
17total 28K
18drwxr-xr-x 2 root root 168 Jul 27 16:27 .
19dr-xr-x---. 13 root root 4.0K Jul 27 16:12 ..
20-rw-r--r-- 1 root root 963 Jul 27 16:27 genrsa_1024_encrypt.rsa
21-rw-r--r-- 1 root root 887 Jul 27 16:23 genrsa_1024.rsa
22-rw-r--r-- 1 root root 1.8K Jul 27 16:27 genrsa_2048_encrypt.rsa
23-rw-r--r-- 1 root root 1.7K Jul 27 16:19 genrsa_2048.rsa
24-rw-r--r-- 1 root root 3.3K Jul 27 16:26 genrsa_4096_encrypt.rsa
25-rw-r--r-- 1 root root 3.2K Jul 27 16:19 genrsa_4096.rsa
26
27# 可以看出,加密后的私钥文件变大了一点
28[root@centos openssl_test]#
29
xxxxxxxxxx
201[root@centos openssl_test]# openssl genrsa help
2usage: genrsa [args] [numbits]
3 -des encrypt the generated key with DES in cbc mode
4 -des3 encrypt the generated key with DES in ede cbc mode (168 bit key)
5 -idea encrypt the generated key with IDEA in cbc mode
6 -seed
7 encrypt PEM output with cbc seed
8 -aes128, -aes192, -aes256
9 encrypt PEM output with cbc aes
10 -camellia128, -camellia192, -camellia256
11 encrypt PEM output with cbc camellia
12 -out file output the key to 'file
13 -passout arg output file pass phrase source
14 -f4 use F4 (0x10001) for the E value
15 -3 use 3 for the E value
16 -engine e use engine e, possibly a hardware device. # 对应输出中的 e is 65537 (0x10001)
17 -rand file:file:...
18 load the file (or the files in the directory) into
19 the random number generator
20
xxxxxxxxxx
191# 可以看出是相当于命令 openssl genrsa 2048
2[root@centos openssl_test]# openssl genrsa
3Generating RSA private key, 2048 bit long modulus
4..+++
5.................+++
6e is 65537 (0x10001)
7-----BEGIN RSA PRIVATE KEY-----
8MIIEogIBAAKCAQEA3HTtGa48QyFvS5VEDjk6hxU3/MfDsu9GhqD0SvDGRSbomdU/
9I0/g2heRaFPrcvK7o+nYWCJRYp1DiaAO70sVUzXUi8q20t54gp9CMJlKVvhFaP8F
10uj/jqec9mtGiomApSWa03wACfPkFMSqceKRuWBVIL7OfHmhYFXPI0TNfWnwtMrM7
11 ...
12省略备注:2048位 RSA BEGIN -- END 区间总共约24行
13 ...
147hEg8uOEEO1tgt7UyaNRsseCabCQ3l57m5ma3jHBeyzDmv9ZSfexuE4HK2HjN4UZ
15+pMxAoGAE3iML0UXv16VEsPZkCaKIFCyvM+OW3soFB9gC5q+xop5fyjJgzh40U/v
16DMHk+p7QO+uydUv1EK0b/XaDGOSef32FQDTIwcC49raVHkpS4FSPd28UEOY0NLqN
17Vs1oGw2D0HYRSTkgO2/rWXwnkXyTzP19VKPzEqnyn1UZoBBpyqQ=
18-----END RSA PRIVATE KEY-----
19
查看
没错,常用的是ssh
xxxxxxxxxx
491[root@centos openssl_test]# openssl genrsa -out genrsa_2048.rsa 2048
2Generating RSA private key, 2048 bit long modulus
3...............................................................................................+++
4........................+++
5e is 65537 (0x10001)
6[root@centos openssl_test]# cat genrsa_2048.rsa
7# 查看输出文件
8-----BEGIN RSA PRIVATE KEY-----
9MIIEpQIBAAKCAQEA3Pemy0XO+3gR7uduvvwpuiDJjL5UtbzOMee3XzKYEze4Hq4v
10ntMyLx1QIJN+Ef0O3EfgweH6SPoW90iSYB7NNdlCMh/EWuB1K9mY5xv3PDGl2xnT
11mVifDARbkjpPg1AaZ2FllYI0ezR/4nPzzdmIbh43uxg9jzG2TSlE5VYp8OD9kbcb
12 ...
13 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
14 ...
15JgCji3sxh71NwdhfQu2hHCXkA9yLebv/O8QQm6PL3EqWLdn7HAC+weTf5RuXpDAo
16Uo0fRfEVAoGAK8dO/57YjLGGlJ2+f/yUt8pMN0IFASMJW2BS74+rl6b+KbFfPcXX
17AiBtfnH5wG4kuqJYNpOQRuoBpFCpsr8Fgb52gBAM9oRlXj/JbDc+3enTzHe0fCB7
18DSEIdnl1tHoellxiqFydQpA4ZskAInPmiqcMkBr0UDZY72ffHhClwJ8=
19-----END RSA PRIVATE KEY-----
20[root@centos openssl_test]# openssl rsa -in genrsa_2048.rsa
21# 直接用openssl rsa 查看私钥文件,与cat直接查看文件一致。
22writing RSA key
23-----BEGIN RSA PRIVATE KEY-----
24MIIEpQIBAAKCAQEA3Pemy0XO+3gR7uduvvwpuiDJjL5UtbzOMee3XzKYEze4Hq4v
25ntMyLx1QIJN+Ef0O3EfgweH6SPoW90iSYB7NNdlCMh/EWuB1K9mY5xv3PDGl2xnT
26mVifDARbkjpPg1AaZ2FllYI0ezR/4nPzzdmIbh43uxg9jzG2TSlE5VYp8OD9kbcb
27 ...
28 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
29 ...
30Uo0fRfEVAoGAK8dO/57YjLGGlJ2+f/yUt8pMN0IFASMJW2BS74+rl6b+KbFfPcXX
31AiBtfnH5wG4kuqJYNpOQRuoBpFCpsr8Fgb52gBAM9oRlXj/JbDc+3enTzHe0fCB7
32DSEIdnl1tHoellxiqFydQpA4ZskAInPmiqcMkBr0UDZY72ffHhClwJ8=
33-----END RSA PRIVATE KEY-----
34[root@centos openssl_test]# openssl rsa -in genrsa_2048.rsa -pubout
35# 将私钥的公钥输出到屏幕
36writing RSA key
37-----BEGIN PUBLIC KEY-----
38MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3Pemy0XO+3gR7uduvvwp
39uiDJjL5UtbzOMee3XzKYEze4Hq4vntMyLx1QIJN+Ef0O3EfgweH6SPoW90iSYB7N
40NdlCMh/EWuB1K9mY5xv3PDGl2xnTmVifDARbkjpPg1AaZ2FllYI0ezR/4nPzzdmI
41bh43uxg9jzG2TSlE5VYp8OD9kbcbfGEzP4Nemp+0eCkEZkwoG/aHAhQ1hyZAsd91
426HJ1FoIXexu9ZzFrZuHbw07ALBnnDq0PC+x3Z0HhsQOOPBn2T9lmKEl0txwDoizY
431NyiWWdG58xnhBWLEVLHoiMLaTIXxxtPuiysqOgtRsq/QT7MupOdkQdJjf2EgWEm
44uwIDAQAB
45-----END PUBLIC KEY-----
46
47[root@centos openssl_test]# openssl rsa -in genrsa_2048.rsa -pubout -out genrsa_2048.rsa_public
48# 输出公钥到文件
49
查看加密私钥文件
xxxxxxxxxx
571[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -pubout
2# 这个是加密私钥,要求输入密码才能查看公钥、私钥。
3Enter pass phrase for genrsa_2048_encrypt.rsa:
4writing RSA key
5-----BEGIN PUBLIC KEY-----
6MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqetgCD6lqGVkd2bUURLP
7IFCgeQkMYorY1ezXbshs9tCXgWIWtZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2N
8BJ4rwqkpjGTTFSvIVj9z+D13sH6Xq9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfd
9zpVKUf6cM44xbgk2nLc7uu5zTs2XJmgiwL4SfD6mY1Kmi+2V7q8g4ktatXzLWCaY
108CjJtvAAwIt236W/pSg1o1fJBoeMru/OVYL56C7AcG4JvFwnvS/jK3QjAwGGdsjW
11pZr2DTHaBVSCMfNc2PDBAJOWsOb7n9Xwfag2cOTitUU9fOXp4pEVPEFcXB0DV1W+
12CwIDAQAB
13-----END PUBLIC KEY-----
14[root@centos openssl_test]#
15
16[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa
17Enter pass phrase for genrsa_2048_encrypt.rsa:
18writing RSA key
19-----BEGIN RSA PRIVATE KEY-----
20MIIEowIBAAKCAQEAqetgCD6lqGVkd2bUURLPIFCgeQkMYorY1ezXbshs9tCXgWIW
21tZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2NBJ4rwqkpjGTTFSvIVj9z+D13sH6X
22q9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfdzpVKUf6cM44xbgk2nLc7uu5zTs2X
23 ...
24 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
25 ...
26c9ilYO+XCIOZcrjEpTOwLhgf2UIKHxp8a7SVb9c/xnCdL9Bw+YgSP6drnMy8pYmO
27frUVAoGBAISO1QhKMRf+FT7YbV18wjzvBzTa4ne2z96jWbdJMwzlF7cEDP/TE4/q
28wgrVXT1B8sYEIUJbhIwJDp6yj0Jrp1808zNHUS40v3EV5M+kOCqoLq3GGgjPpEWM
29DBMhmrxDqcAlUzSxGQ61GsMO1XB5bMZHpCNl3Ob8eorTbUs2ok4u
30-----END RSA PRIVATE KEY-----
31[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -pubout -out test_
32Enter pass phrase for genrsa_2048_encrypt.rsa:
33writing RSA key
34[root@centos openssl_test]# ls -alh
35total 32K
36drwxr-xr-x 2 root root 181 Jul 27 16:50 .
37dr-xr-x---. 13 root root 4.0K Jul 27 16:12 ..
38-rw-r--r-- 1 root root 963 Jul 27 16:27 genrsa_1024_encrypt.rsa
39-rw-r--r-- 1 root root 887 Jul 27 16:23 genrsa_1024.rsa
40-rw-r--r-- 1 root root 1.8K Jul 27 16:27 genrsa_2048_encrypt.rsa
41-rw-r--r-- 1 root root 1.7K Jul 27 16:43 genrsa_2048.rsa
42-rw-r--r-- 1 root root 3.3K Jul 27 16:26 genrsa_4096_encrypt.rsa
43-rw-r--r-- 1 root root 3.2K Jul 27 16:19 genrsa_4096.rsa
44-rw-r--r-- 1 root root 451 Jul 27 16:50 test_
45# 注意公钥的文件大小
46[root@centos openssl_test]# cat test_
47-----BEGIN PUBLIC KEY-----
48MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqetgCD6lqGVkd2bUURLP
49IFCgeQkMYorY1ezXbshs9tCXgWIWtZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2N
50BJ4rwqkpjGTTFSvIVj9z+D13sH6Xq9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfd
51zpVKUf6cM44xbgk2nLc7uu5zTs2XJmgiwL4SfD6mY1Kmi+2V7q8g4ktatXzLWCaY
528CjJtvAAwIt236W/pSg1o1fJBoeMru/OVYL56C7AcG4JvFwnvS/jK3QjAwGGdsjW
53pZr2DTHaBVSCMfNc2PDBAJOWsOb7n9Xwfag2cOTitUU9fOXp4pEVPEFcXB0DV1W+
54CwIDAQAB
55-----END PUBLIC KEY-----
56[root@centos openssl_test]#
57
xxxxxxxxxx
471[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa
2Enter pass phrase for genrsa_2048_encrypt.rsa:
3writing RSA key
4-----BEGIN RSA PRIVATE KEY-----
5MIIEowIBAAKCAQEAqetgCD6lqGVkd2bUURLPIFCgeQkMYorY1ezXbshs9tCXgWIW
6tZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2NBJ4rwqkpjGTTFSvIVj9z+D13sH6X
7q9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfdzpVKUf6cM44xbgk2nLc7uu5zTs2X
8 ...
9 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
10 ...
11frUVAoGBAISO1QhKMRf+FT7YbV18wjzvBzTa4ne2z96jWbdJMwzlF7cEDP/TE4/q
12wgrVXT1B8sYEIUJbhIwJDp6yj0Jrp1808zNHUS40v3EV5M+kOCqoLq3GGgjPpEWM
13DBMhmrxDqcAlUzSxGQ61GsMO1XB5bMZHpCNl3Ob8eorTbUs2ok4u
14-----END RSA PRIVATE KEY-----
15[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -out xxxx
16# 将加密私钥输出
17Enter pass phrase for genrsa_2048_encrypt.rsa:
18writing RSA key
19[root@centos openssl_test]# cat xxxx
20-----BEGIN RSA PRIVATE KEY-----
21MIIEowIBAAKCAQEAqetgCD6lqGVkd2bUURLPIFCgeQkMYorY1ezXbshs9tCXgWIW
22tZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2NBJ4rwqkpjGTTFSvIVj9z+D13sH6X
23q9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfdzpVKUf6cM44xbgk2nLc7uu5zTs2X
24 ...
25 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
26 ...
27c9ilYO+XCIOZcrjEpTOwLhgf2UIKHxp8a7SVb9c/xnCdL9Bw+YgSP6drnMy8pYmO
28frUVAoGBAISO1QhKMRf+FT7YbV18wjzvBzTa4ne2z96jWbdJMwzlF7cEDP/TE4/q
29wgrVXT1B8sYEIUJbhIwJDp6yj0Jrp1808zNHUS40v3EV5M+kOCqoLq3GGgjPpEWM
30DBMhmrxDqcAlUzSxGQ61GsMO1XB5bMZHpCNl3Ob8eorTbUs2ok4u
31-----END RSA PRIVATE KEY-----
32[root@centos openssl_test]# openssl rsa -in xxxx
33# 此时已不要求输入密码
34writing RSA key
35-----BEGIN RSA PRIVATE KEY-----
36MIIEowIBAAKCAQEAqetgCD6lqGVkd2bUURLPIFCgeQkMYorY1ezXbshs9tCXgWIW
37tZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2NBJ4rwqkpjGTTFSvIVj9z+D13sH6X
38q9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfdzpVKUf6cM44xbgk2nLc7uu5zTs2X
39 ...
40 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
41 ...
42c9ilYO+XCIOZcrjEpTOwLhgf2UIKHxp8a7SVb9c/xnCdL9Bw+YgSP6drnMy8pYmO
43frUVAoGBAISO1QhKMRf+FT7YbV18wjzvBzTa4ne2z96jWbdJMwzlF7cEDP/TE4/q
44wgrVXT1B8sYEIUJbhIwJDp6yj0Jrp1808zNHUS40v3EV5M+kOCqoLq3GGgjPpEWM
45DBMhmrxDqcAlUzSxGQ61GsMO1XB5bMZHpCNl3Ob8eorTbUs2ok4u
46-----END RSA PRIVATE KEY-----
47
xxxxxxxxxx
191[root@centos openssl_test]# openssl rsa -in genrsa_2048.rsa -out bbb -des3 -passout pass:abcde
2writing RSA key
3[root@centos openssl_test]# openssl rsa -in bbb
4Enter pass phrase for bbb:abcde
5writing RSA key
6-----BEGIN RSA PRIVATE KEY-----
7MIIEpQIBAAKCAQEA3Pemy0XO+3gR7uduvvwpuiDJjL5UtbzOMee3XzKYEze4Hq4v
8ntMyLx1QIJN+Ef0O3EfgweH6SPoW90iSYB7NNdlCMh/EWuB1K9mY5xv3PDGl2xnT
9mVifDARbkjpPg1AaZ2FllYI0ezR/4nPzzdmIbh43uxg9jzG2TSlE5VYp8OD9kbcb
10 ...
11 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
12 ...
13JgCji3sxh71NwdhfQu2hHCXkA9yLebv/O8QQm6PL3EqWLdn7HAC+weTf5RuXpDAo
14Uo0fRfEVAoGAK8dO/57YjLGGlJ2+f/yUt8pMN0IFASMJW2BS74+rl6b+KbFfPcXX
15AiBtfnH5wG4kuqJYNpOQRuoBpFCpsr8Fgb52gBAM9oRlXj/JbDc+3enTzHe0fCB7
16DSEIdnl1tHoellxiqFydQpA4ZskAInPmiqcMkBr0UDZY72ffHhClwJ8=
17-----END RSA PRIVATE KEY-----
18[root@centos openssl_test]#
19
-- passin pass:123456 # 密码参数
-des3 -passout pass:abcde # 加密密码参数
xxxxxxxxxx
231[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -out aaa -des3 -passout pass:abcde
2Enter pass phrase for genrsa_2048_encrypt.rsa:
3writing RSA key
4# 此时要求输入原密码,新密码通过-des3 -passout pass:abcde传入
5[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -passin pass:123456 -out aaa -des3 -passout pass:abcde
6writing RSA key
7[root@centos openssl_test]# openssl rsa -in aaa
8# 用新密码打开
9Enter pass phrase for aaa:abcde
10writing RSA key
11-----BEGIN RSA PRIVATE KEY-----
12MIIEowIBAAKCAQEAqetgCD6lqGVkd2bUURLPIFCgeQkMYorY1ezXbshs9tCXgWIW
13tZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2NBJ4rwqkpjGTTFSvIVj9z+D13sH6X
14q9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfdzpVKUf6cM44xbgk2nLc7uu5zTs2X
15 ...
16 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
17 ...
18c9ilYO+XCIOZcrjEpTOwLhgf2UIKHxp8a7SVb9c/xnCdL9Bw+YgSP6drnMy8pYmO
19frUVAoGBAISO1QhKMRf+FT7YbV18wjzvBzTa4ne2z96jWbdJMwzlF7cEDP/TE4/q
20wgrVXT1B8sYEIUJbhIwJDp6yj0Jrp1808zNHUS40v3EV5M+kOCqoLq3GGgjPpEWM
21DBMhmrxDqcAlUzSxGQ61GsMO1XB5bMZHpCNl3Ob8eorTbUs2ok4u
22-----END RSA PRIVATE KEY-----
23[root@centos openssl_test]#
xxxxxxxxxx
61[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -passin pass:123456 -out aaa -des3
2writing RSA key
3Enter PEM pass phrase:
4Verifying - Enter PEM pass phrase:
5[root@centos openssl_test]#
6
xxxxxxxxxx
111[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -out aaa -des3 -passout pass:abcde
2# 原密码、新密码均通过交互方式输入(新密码有二次确认)
3Enter pass phrase for genrsa_2048_encrypt.rsa:
4writing RSA key
5[root@centos openssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -out aaa -des3
6Enter pass phrase for genrsa_2048_encrypt.rsa:
7writing RSA key
8Enter PEM pass phrase:
9Verifying - Enter PEM pass phrase:
10[root@centos openssl_test]#
11
当然修改后私钥是无效的,无法使用。
xxxxxxxxxx
161[root@centos openssl_test]# openssl rsa -in aaa -check
2Enter pass phrase for aaa:
3RSA key ok # 自校验ok
4writing RSA key
5-----BEGIN RSA PRIVATE KEY-----
6MIIEowIBAAKCAQEAqetgCD6lqGVkd2bUURLPIFCgeQkMYorY1ezXbshs9tCXgWIW
7tZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2NBJ4rwqkpjGTTFSvIVj9z+D13sH6X
8q9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfdzpVKUf6cM44xbgk2nLc7uu5zTs2X
9 ...
10 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
11 ...
12c9ilYO+XCIOZcrjEpTOwLhgf2UIKHxp8a7SVb9c/xnCdL9Bw+YgSP6drnMy8pYmO
13frUVAoGBAISO1QhKMRf+FT7YbV18wjzvBzTa4ne2z96jWbdJMwzlF7cEDP/TE4/q
14wgrVXT1B8sYEIUJbhIwJDp6yj0Jrp1808zNHUS40v3EV5M+kOCqoLq3GGgjPpEWM
15DBMhmrxDqcAlUzSxGQ61GsMO1XB5bMZHpCNl3Ob8eorTbUs2ok4u
16-----END RSA PRIVATE KEY-----
xxxxxxxxxx
211[root@centos openssl_test]# openssl rsa -in aaa -check
2Enter pass phrase for aaa:abcde
3RSA key error: d e not congruent to 1 # 此时是仅修改了一个字符时的报错。
4RSA key error: dmp1 not congruent to d
5RSA key error: dmq1 not congruent to d
6writing RSA key
7-----BEGIN RSA PRIVATE KEY-----
8MIIEowIBAAKCAQEAqetgCD6lqGVkd2bUURLPIFCgeQkMYorY1ezXbshs9tCXgWIW
9tZsQCeaoWzt2iQ0zt5RDuQHYCkq1kBwvkK2NBJ4rwqkpjGTTFSvIVj9z+D13sH6X
10q9ux92o66+cBvqVV+1mTvqSxj4NCWTg1xAfdzpVKUf6cM44xbgk2nLc7uu5zTs2X
11 ...
12 省略备注:2048位 RSA BEGIN -- END 区间总共约24行
13 ...
14c9ilYO+XCIOZcrjEpTOwLhgf2UIKHxp8a7SVb9c/xnCdL9Bw+YgSP6drnMy8pYmO
15frUVAoGBAISO1QhKMRf+FT7YbV18wjzvBzTa4ne2z96jWbdJMwzlF7cEDP/TE4/q
16wgrVXT1B8sYEIUJbhIwJDp6yj0Jrp1808zNHUS40v3EV5M+kOCqoLq3GGgjPpEWM
17DBMhmrxDqcAlUzSxGQ61GsMO1XB5bMZHpCNl3Ob8eorTbUs2ok4u
18-----END RSA PRIVATE KEY-----
19# 其它的报错
20unable to load Private Key
21139890935146400:error:0906D066:PEM routines:PEM_read_bio:bad end line:pem_lib.c:802:
测试本机的加密算法的性能(计算能力)
xxxxxxxxxx
11# openssl speed [md2] [mdc2] [md5] [hmac] [sha1] [rmd160] [idea-cbc] [rc2-cbc] [rc5-cbc] [bf-cbc] [des-cbc] [des-ede3] [rc4] [rsa512] [rsa1024] [rsa2048] [rsa4096] [dsa512] [dsa1024] [dsa2048] [idea] [rc2] [des] [rsa] [blowfish]
大概是10秒多少个:如下
177262/10s
xxxxxxxxxx
231[root@centos openssl_test]# openssl speed dsa512 rsa512 rsa2048
2Doing 512 bit private rsa's for 10s: 177262 512 bit private RSA's in 9.99s
3Doing 512 bit public rsa's for 10s: 2101681 512 bit public RSA's in 10.00s
4Doing 2048 bit private rsa's for 10s: 8322 2048 bit private RSA's in 10.00s
5Doing 2048 bit public rsa's for 10s: 276706 2048 bit public RSA's in 9.99s
6Doing 512 bit sign dsa's for 10s: 120092 512 bit DSA signs in 10.00s
7Doing 512 bit verify dsa's for 10s: 187931 512 bit DSA verify in 9.99s
8OpenSSL 1.0.2k-fips 26 Jan 2017
9built on: reproducible build, date unspecified
10options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
11compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
12 sign verify sign/s verify/s
13rsa 512 bits 0.000056s 0.000005s 17743.9 210168.1
14rsa 2048 bits 0.001202s 0.000036s 832.2 27698.3
15 sign verify sign/s verify/s
16dsa 512 bits 0.000083s 0.000053s 12009.2 18811.9
17
18
19[root@centos openssl_test]# openssl rand -base64 30;openssl rand -hex 30;openssl rand 30
201VwkzoONidGgARKuzxsU1QFco3rVdsSao7olCDcg
2150f637130ea027ef5414445d077d78e5ac4fca392b4271a70d7f32784581
22▒▒S"▒▒j▒~▒O=▒▒3O▒|▒x▒▒/▒T[root@centos openssl_test]#
23
xxxxxxxxxx
251
2[root@centos openssl_test]# openssl rand -base64 30
38T1vetrHIui9tU/YzC4Owz5FUtS1khSmDFAexIk9
4[root@centos openssl_test]# openssl rand -hex 30
575629487094bbf7ec9a4cee6c96f120afba3366ae61da0a22dc86f2c18a3
6[root@centos openssl_test]# openssl rand 30
7R▒▒T▒{▒`)N▒*ν▒▒r▒▒▒7
8▒▒▒a[root@centos openssl_test]#
9
10[root@centos openssl_test]# openssl rand -rand aaa
11Usage: rand [options] num
12where options are
13-out file - write to file
14-engine e - use engine e, possibly a hardware device.
15-rand file:file:... - seed PRNG from files
16-base64 - base64 encode output
17-hex - hex encode output
18[root@centos openssl_test]# openssl rand -rand aaa 30
191743 semi-random bytes loaded
20▒[�▒m▒Q▒▒+Y"U▒f▒u▒▒E_▒[root@centos openssl_test]#
21[root@centos openssl_test]# openssl rand -rand aaa -hex 30
221743 semi-random bytes loaded
235ab338214e42cf4b96a02a54d790dc35040497d01a2c158541e0ad5895f6
24[root@centos openssl_test]#
25
选项说明:
-crypt:UNIX标准加密算法,此为默认算法。如果加盐(-salt)算密码,只取盐的前2位,2位后面的所有字符都忽略。
-1(数字):基于MD5的算法代号。更多的算法代号见"http://www.cnblogs.com/f-ck-need-u/p/7011460.html#blog222"。
-apr1(数字):apache中使用的备选md5算法代号,不能和"-1"选项一起使用,因为apr1本身就默认了md5。htpasswd工具生成的身份验证密码就是此方法。
-salt:加密时加点盐,可以增加算法的复杂度。但加了盐会有副作用:盐相同,密码相同,加密的结果将一样。
-in file:从文件中读取要计算的密码列表
-stdin:从标准输入中获取要输入的密码
-quiet:生成密码过程中不输出任何信息
xxxxxxxxxx
451[root@centos openssl_test]# man sslpasswd # 帮助手册
2[root@centos openssl_test]# openssl passwd 123456;openssl passwd 123456
3I4QMiuXObfxQ.
4fyuQFqzHk7vrw
5
6# 可以看出密码也不一样
7# 因为默认使用-crypt是使用随机密码加密的。 可以通过-salt将加密密码固定,但也只取-salt的前2位
8[root@centos openssl_test]#
9[root@centos openssl_test]# openssl passwd -salt 'xyx' 123456;openssl passwd -salt 'xxx' 123456
10xyJkVhXGAZ8tM
11xxkVQ7YXT9yoE
12# -salt前2位不同,但加密后的值是固定的,就是在不同的主机上执行此命令,都是同样的输出
13[root@centos openssl_test]# openssl passwd -salt 'xyx' 123456;openssl passwd -salt 'xyx' 123456
14xyJkVhXGAZ8tM
15xyJkVhXGAZ8tM
16# -salt前2位相同。
17[root@centos openssl_test]#openssl passwd -crypt -salt 'xyx' 123456
18# 这个是等效完整命令
19
20
21# -l 基于md5算法加密密码,同样加-salt参数后,密码将固定,且不限制2位salt。
22[root@centos openssl_test]# openssl passwd -1 123456 ; openssl passwd -1 123456
23$1$gnQ2oXiZ$5pmHzkczNKejnFvOJ1byT.
24$1$547gj6Hu$9/PRvlnk8qHobRA2Ckh/X1
25[root@centos openssl_test]# openssl passwd -1 123456 ; openssl passwd -1 123456
26$1$fhuoZF1N$23aX.Fm/d7VhVGDTzHFoU0
27$1$bhJ/qMc7$QEu9YaDXXrO3JveGtLB9u/
28[root@centos openssl_test]# openssl passwd -1 -salt 'abcde ' 123456 ; openssl passwd -1 -salt 'abcde' 123456
29$1$abcde $QfooXY1pJ8YQrb4hqlNFG.
30$1$abcde$ZNsM2unwzBdZCr/Y0QzpZ/
31[root@centos openssl_test]# openssl passwd -1 -salt 'abcde ' 123456 ; openssl passwd -1 -salt 'abcde' 123456
32$1$abcde $QfooXY1pJ8YQrb4hqlNFG.
33$1$abcde$ZNsM2unwzBdZCr/Y0QzpZ/
34[root@centos openssl_test]# openssl passwd -1 -salt 'abcde ' 123456 ; openssl passwd -1 -salt 'abcde' 123456
35$1$abcde $QfooXY1pJ8YQrb4hqlNFG.
36$1$abcde$ZNsM2unwzBdZCr/Y0QzpZ/
37
38# -apr1 定制版的-l参数,所以就不要同时与-l出现了。
39[root@centos openssl_test]# openssl passwd -apr1 123456 ; openssl passwd -apr1 123456
40$apr1$x33fWW1u$ueY9aH7EkOMyvx1FfJal2.
41$apr1$m7zNn8rw$a2F8W1W0n5MmTf04XIu2M.
42[root@centos openssl_test]# openssl passwd -apr1 -salt 'abcde' 123456 ; openssl passwd -apr1 -salt 'abcde' 123456
43$apr1$abcde$JfpSak.jThpRLJPtL0SUP0
44$apr1$abcde$JfpSak.jThpRLJPtL0SUP0
45
生成sha512密码
xxxxxxxxxx
51# grub-crypt --sha-512代替(交互)
2python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
3
4# grub-crypt --sha-512代替(非交互)
5python -c 'import crypt,getpass;pw="123456";print(crypt.crypt(pw))'
pfx (外加了导入密码的二进制文件,iis中常用)<-----> crt+key之间的互转
windows也认扩展名为p12的导入
xxxxxxxxxx
631[root@centos]# openssl pkcs12 -in STAR.zjzwfw.gov.cn_iis.pfx
2Enter Import Password: # 提示输入导入密码,没有时可以直接回车。
3MAC verified OK
4Bag Attributes
5 localKeyID: 06 BF 20 14 3B E0 6B FB 48 52 53 D3 32 93 6C CF 57 72 5E A5
6subject=/C=CN/ST=\xE6\xB5\x99\xE6\xB1\x9F\xE7\x9C\x81/L=\xE6\x9D\xAD\xE5\xB7\x9E\xE5\xB8\x82/O=\xE6\xB5\x99\xE6\xB1\x9F\xE7\x9C\x81\xE4\xBA\xBA\xE6\xB0\x91\xE6\x94\xBF\xE5\xBA\x9C\xE5\x8A\x9E\xE5\x85\xAC\xE5\x8E\x85(\xE6\xB5\x99\xE6\xB1\x9F\xE7\x9C\x81\xE4\xBA\xBA\xE6\xB0\x91\xE6\x94\xBF\xE5\xBA\x9C\xE5\x8F\x82\xE4\xBA\x8B\xE5\xAE\xA4)/OU=\xE4\xBF\xA1\xE6\x81\xAF\xE4\xB8\xAD\xE5\xBF\x83/CN=*.zjzwfw.gov.cn
7issuer=/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
8-----BEGIN CERTIFICATE-----
9MIIG8DCCBdigAwIBAgIQDZYSfSPTcQMfrDqQX5iL/jANBgkqhkiG9w0BAQsFADBN
10MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
11aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMjAwNzE0MDAwMDAwWhcN
12MjIwOTE0MTIwMDAwWjCBrzELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCea1meaxn+ec
13gTESMBAGA1UEBwwJ5p2t5bee5biCMUcwRQYDVQQKDD7mtZnmsZ/nnIHkurrmsJHm
14...省略若干行
15...
16aiHCG2WVYp9zXi19KkootQbZJ9w1Ojno3Axy4IKbhNB1FQfmo+mmR2mK5EbUPEY4
17bFTwAMFzMFC1s1eI4BJLYdEabg2C5WLrugFMcv+VbrIkXTAO49SXUEnKgZcSUfvd
18rkgwyg==
19-----END CERTIFICATE-----
20Bag Attributes: <No Attributes>
21subject=/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
22issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
23-----BEGIN CERTIFICATE-----
24MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh
25MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
26d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
27QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
28MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
29U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
30ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
31nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
32...省略若干行
33...
34xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
35CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl
365TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA
378MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC
382iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
39c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
40j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz
41-----END CERTIFICATE-----
42Bag Attributes
43 localKeyID: 06 BF 20 14 3B E0 6B FB 48 52 53 D3 32 93 6C CF 57 72 5E A5
44Key Attributes: <No Attributes>
45Enter PEM pass phrase: # 提示输入pem密码这是一个ca+crt+key的三合一文件信息,但指定输出到文件参数时,将输出到屏幕上。
46Verifying - Enter PEM pass phrase: # 这个密码是必要输入的,否则不显示或不能导出。
47-----BEGIN ENCRYPTED PRIVATE KEY-----
48MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIka0ggXMf0yYCAggA
49MBQGCCqGSIb3DQMHBAjZAl+FkfCHrASCBMghtLJmiRYSoKMHvXR4eucJQrOc3yK6
50Ms6/MlRAYeQCJ1h4MWMfACLLx6Bj8gQNveIcNU5EEJZNaq2UwxHpdpQCQqszSr5E
51...省略若干行
52...
53nxo2qbGNTfSEvByHepsG3UoftWiOzV+baiE5k3P7RjEGtyXlqAfWgwjLJ8HWiloc
54uTjr5Q0ZV5wYWFXpPDt6OWdnvK+zqwD0XDjqXyeABXGQr+MM0FG+n6FF0vcbF9k4
55yeLsY+T9LG5egwRYp4SQDVpDb5jWHLJAtYRWX13bvfhDEh40Bd+a24DfU2cCzBuR
565ez7fuk9jdkd0V8KGlB6wQPI8PWNAc+yW1njyoVy4PonmL5+oeMej70jsjGMAlAD
57bXJsB6me6A0CciLItc49LmT1QfHGTz3/QgXBpWEXnsJIlfvyJxzoKgiezxJKbpyU
58aigWrJhZuNmyTOs8B7wDVNRVUC/PV62rz4E435GZNH1pW6dh46UdiTwfxT7X2QNp
59eEJrcSnY9nJflv7TPQ96CkUC3r+/zW8vLAh5A0AupwpPcFzij3fgMZ51Z2Ql6JZu
60Hek=
61-----END ENCRYPTED PRIVATE KEY-----
62[root@centos]#
63
xxxxxxxxxx
61# 导入的源包括3个文件:ca证书,站点证书,站点证书的key,
2# 输出的是pfx
3[root@centos]# openssl pkcs12 -inkey site.key -in site_certificate.crt -certfile ca.crt -export -out site_certificate.pfx
4Enter Export Password: # 提示输入新创建的文件的导出密码,可以不指定密码。
5Verifying - Enter Export Password:
6
将PFX文件转换为PEM格式时,OpenSSL会将所有证书和私钥放入一个文件中。您需要在文本编辑器中打开该文件,并将每个证书和私钥(包括BEGIN / END语句)复制到其各自的文本文件中,并将它们分别保存为certificate.cer.crt(域名证书),CACert.cer.crt(根证书,与域名证书类似,可能不包括在其中)和privateKey.key(私钥)。
但其实命令本身的参数也是支持分开导出的(下面有示例),说明它们的生成原理中有一部分就是合并文件。ca证书和网站证书可以合并成一个证书文件,直接复制粘贴合并即可。
...
xxxxxxxxxx
791[root@centos]# openssl pkcs12 -in certificate.pfx -out pem_ca_nocerts.crt -nocerts -nomacver -nodes
2# 此时仅导出-----BEGIN PRIVATE KEY-----部分,即私钥部分。
3Enter Import Password:
4[root@centos]# ls -alh
5
6-rw-r--r-- 1 root root 1.8K Jul 27 21:08 pem_ca_nocerts.crt
7-rw-r--r-- 1 root root 4.5K Jul 27 20:31 STAR.zjzwfw.gov.cn_iis.pfx
8[root@centos]# cat pem_ca_nocerts.crt
9Bag Attributes
10 localKeyID: 98 5F 13 D2 3B A3 76 5F 8C BC 42 C9 64 93 3C 19 C9 74 E1 8A
11Key Attributes: <No Attributes>
12-----BEGIN PRIVATE KEY-----
13MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCt7zCT5ztpf1f7
14awmFiXW98ajRxGAx6uhQffUeBlA6HjyMMBgzZRGtawUSnPL37TUyk5g1W1i1UyFR
15Jo9/iDMuPE7HFdA0S1gm+fsnMO6cYKjATCCGO9HrBg1in+vgVDlvd5A7ryKOa01p
16AeWW9IXilTpWtUlrgyYINm2A8+Mpug0MAnyUigy62Mkcktl3Qk4au/+GgESuSuYv
17...省略若干行
18...
19zcwnrW6Dp7xk9dbsNhFhtZnZ4SJR/qMi6DfXPRBUTuiWv0XhyMI3nWL1KIcYQl2d
20dgAR85k6qP4xhEhU1QQM2LZ6YWoUVFy/ChFfMmjQ1F+ceYBDYdsz1LI3xb+3nwQb
21LWkQieunIZp8Odt+k9GxtfoOjhmOPtB6PHjglt0nAoGAc6FHA4dAURxmyzQY0rno
22JjyZ+uLi5WQDyaXGvDitVhBywxQEBpFcEYrF3XdMXpg50lhiOPViOy5+IIeRsvlU
236hbRkCzlIEatWcE6pxIDFl3MrqmqqQYyoNme8pp1zxi+8LbCfg/WCmclTBOoieRf
24kIE+n0hRYFEMw2Z38fZh0XY=
25-----END PRIVATE KEY-----
26[root@centos]#
27
28# =======================================================================================下面的可用作nginx使用。
29
30[root@centos]# openssl pkcs12 -in certificate.pfx -out clcerts.pem -clcerts -nodes
31# 此时的pem是包含了client_crt+key的文件,其中的顺序不重要。提取----xxx ----中的段落即可用作nginx使用。
32Enter Import Password:
33MAC verified OK 输出此处的表明可用。
34
35[root@centos]# cat pem_ca_clcerts.crt
36Bag Attributes
37 localKeyID: 98 5F 13 D2 3B A3 76 5F 8C BC 42 C9 64 93 3C 19 C9 74 E1 8A
38subject=/CN=www.haudi.top # 此处为site
39issuer=/C=CN/O=TrustAsia Technologies, Inc./OU=Domain Validated SSL/CN=TrustAsia TLS RSA CA
40-----BEGIN CERTIFICATE-----
41MIIFrDCCBJSgAwIBAgIQDZP6aUi/I3+gAHFZjht6RzANBgkqhkiG9w0BAQsFADBy
42MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywg
43SW5jLjEdMBsGA1UECxMURG9tYWluIFZhbGlkYXRlZCBTU0wxHTAbBgNVBAMTFFRy
44...省略若干行
45pYi5sZMyK+8+CIvEiooUyQ==
46-----END CERTIFICATE-----
47-----BEGIN PRIVATE KEY-----
48MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCt7zCT5ztpf1f7
49awmFiXW98ajRxGAx6uhQffUeBlA6HjyMMBgzZRGtawUSnPL37TUyk5g1W1i1UyFR
50Jo9/iDMuPE7HFdA0S1gm+fsnMO6cYKjATCCGO9HrBg1in+vgVDlvd5A7ryKOa01p
51...省略若干行
526hbRkCzlIEatWcE6pxIDFl3MrqmqqQYyoNme8pp1zxi+8LbCfg/WCmclTBOoieRf
53kIE+n0hRYFEMw2Z38fZh0XY=
54-----END PRIVATE KEY-----
55
56
57[root@centos]# openssl pkcs12 -in certificate.pfx -out ca_certs.crt -cacerts -nomacver -nodes
58Enter Import Password:
59[root@centos]# cat ca_certs.crt
60# 此时文件包括 ca + key 但不适合nginx使用
61Bag Attributes: <No Attributes>
62subject=/C=CN/O=TrustAsia Technologies, Inc./OU=Domain Validated SSL/CN=TrustAsia TLS RSA CA
63issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
64-----BEGIN CERTIFICATE-----
65MIIErjCCA5agAwIBAgIQBYAmfwbylVM0jhwYWl7uLjANBgkqhkiG9w0BAQsFADBh
66MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
67...省略若干行
68pYi5sZMyK+8+CIvEiooUyQ==
69-----END CERTIFICATE-----
70-----BEGIN PRIVATE KEY-----
71MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCt7zCT5ztpf1f7
72awmFiXW98ajRxGAx6uhQffUeBlA6HjyMMBgzZRGtawUSnPL37TUyk5g1W1i1UyFR
73Jo9/iDMuPE7HFdA0S1gm+fsnMO6cYKjATCCGO9HrBg1in+vgVDlvd5A7ryKOa01p
74...省略若干行
756hbRkCzlIEatWcE6pxIDFl3MrqmqqQYyoNme8pp1zxi+8LbCfg/WCmclTBOoieRf
76kIE+n0hRYFEMw2Z38fZh0XY=
77-----END PRIVATE KEY-----
78
79
xxxxxxxxxx
361[root@centos]# openssl pkcs12 -in certificate.pfx -out ca_certs.crt -cacerts -nokeys -nomacver -nodes
2Enter Import Password:
3[root@centos]# cat ca_certs.crt
4Bag Attributes: <No Attributes>
5subject=/C=CN/O=TrustAsia Technologies, Inc./OU=Domain Validated SSL/CN=TrustAsia TLS RSA CA
6issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
7-----BEGIN CERTIFICATE-----
8MIIErjCCA5agAwIBAgIQBYAmfwbylVM0jhwYWl7uLjANBgkqhkiG9w0BAQsFADBh
9MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
10...省略若干行
11ISLNdMRiDrXntcImDAiRvkh5GJuH4YCVE6XEntqaNIgGkRwxKSgnU3Id3iuFbW9F
12UQ9Qqtb1GX91AJ7i4153TikGgYCdwYkBURD8gSVe8OAco6IfZOYt/TEwii1Ivi1C
13qnuUlWpsF1LdQNIdfbW3TSe0BhQa7ifbVIfvPWHYOu3rkg1ZeMo6XRU9B4n5VyJY
14RmE=
15-----END CERTIFICATE-----
16[root@centos]#
17
18[root@centos]# openssl pkcs12 -in certificate.pfx -out cl_certs.crt -clcerts -nokeys -nomacver -nodes
19Enter Import Password:
20[root@centos]# cat cl_certs.crt
21Bag Attributes
22 localKeyID: 98 5F 13 D2 3B A3 76 5F 8C BC 42 C9 64 93 3C 19 C9 74 E1 8A
23subject=/CN=www.haudi.top
24issuer=/C=CN/O=TrustAsia Technologies, Inc./OU=Domain Validated SSL/CN=TrustAsia TLS RSA CA
25-----BEGIN CERTIFICATE-----
26MIIFrDCCBJSgAwIBAgIQDZP6aUi/I3+gAHFZjht6RzANBgkqhkiG9w0BAQsFADBy
27MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywg
28SW5jLjEdMBsGA1UECxMURG9tYWluIFZhbGlkYXRlZCBTU0wxHTAbBgNVBAMTFFRy
29dXN0QXNpYSBUTFMgUlNBIENBMB4XDTIwMDcyNzAwMDAwMFoXDTIxMDcyODEyMDAw
30MFowGzEZMBcGA1UEAxMQd3d3LnhpbnpoaWJhLnRvcDCCASIwDQYJKoZIhvcNAQEB
31...省略若干行
32dIe542ikcbJ01yNZT7+XZhMSdclhrBY9xWJ3vEfZN+0NwGnL+8pQWSTA2l2JsRId
33pMU+rKpUnytVWMta9Uewfbt8i1vXFyCRv8xdu+AiknpLW2qG2cvE13NiQjWUvPg4
34pYi5sZMyK+8+CIvEiooUyQ==
35-----END CERTIFICATE-----
36
xxxxxxxxxx
501[root@centos]# openssl pkcs12 help
2Usage: pkcs12 [options]
3where options are
4-export output PKCS12 file
5-chain add certificate chain
6-inkey file private key if not infile
7-certfile f add all certs in f
8-CApath arg - PEM format directory of CA's
9-CAfile arg - PEM format file of CA's
10-name "name" use name as friendly name
11-caname "nm" use nm as CA friendly name (can be used more than once).
12-in infile input filename
13-out outfile output filename
14-noout don't output anything, just verify.
15-nomacver don't verify MAC.
16-nocerts don't output certificates.
17-clcerts only output client certificates.
18-cacerts only output CA certificates.
19-nokeys don't output private keys.
20-info give info about PKCS#12 structure.
21-des encrypt private keys with DES
22-des3 encrypt private keys with triple DES (default)
23-idea encrypt private keys with idea
24-seed encrypt private keys with seed
25-aes128, -aes192, -aes256
26 encrypt PEM output with cbc aes
27-camellia128, -camellia192, -camellia256
28 encrypt PEM output with cbc camellia
29-nodes don't encrypt private keys
30-noiter don't use encryption iteration
31-nomaciter don't use MAC iteration
32-maciter use MAC iteration
33-nomac don't generate MAC
34-twopass separate MAC, encryption passwords
35-descert encrypt PKCS#12 certificates with triple DES (default RC2-40)
36-certpbe alg specify certificate PBE algorithm (default RC2-40)
37-keypbe alg specify private key PBE algorithm (default 3DES)
38-macalg alg digest algorithm used in MAC (default SHA1)
39-keyex set MS key exchange type
40-keysig set MS key signature type
41-password p set import/export password source
42-passin p input file pass phrase source
43-passout p output file pass phrase source
44-engine e use engine e, possibly a hardware device.
45-rand file:file:...
46 load the file (or the files in the directory) into
47 the random number generator
48-CSP name Microsoft CSP name
49-LMK Add local machine keyset attribute to private key
50
PEM可以简单的合并ca_certificate.crt / client_certificate.crt / client_certificate.key 来产生,复制粘贴到同一个文件即可。
或者
以此三个文件通过openssl pkcs12 命令输出pfx或p12文件,再由通过命令pfx转换为PEM(建议方案,前文有转换操作)
windows keytools.exe或linux中keytools工具位于jdk中
以下以windows JDK环境测试
xxxxxxxxxx
41keytool -import -alias mycert -file d:\site_key.pem -keystore mykeystore.jks
2# 有具体帮助。也支持反向转换。
3#校验jks证书密钥
4keytool -list -v -keystore arbor.jks
xxxxxxxxxx
1961E:\jdk1.8.0_192\bin>keytool.exe --help
2密钥和证书管理工具
3
4命令:
5
6 -certreq 生成证书请求
7 -changealias 更改条目的别名
8 -delete 删除条目
9 -exportcert 导出证书
10 -genkeypair 生成密钥对
11 -genseckey 生成密钥
12 -gencert 根据证书请求生成证书
13 -importcert 导入证书或证书链
14 -importpass 导入口令
15 -importkeystore 从其他密钥库导入一个或所有条目
16 -keypasswd 更改条目的密钥口令
17 -list 列出密钥库中的条目
18 -printcert 打印证书内容
19 -printcertreq 打印证书请求的内容
20 -printcrl 打印 CRL 文件的内容
21 -storepasswd 更改密钥库的存储口令
22
23使用 "keytool -command_name -help" 获取 command_name 的用法
24
25E:\jdk1.8.0_192\bin>keytool.exe -import -alias mycert -file .\start.pem -keystore mykeystore.jks
26输入密钥库口令:
27密钥库口令太短 - 至少必须为 6 个字符
28输入密钥库口令:
29再次输入新口令:
30
31E:\jdk1.8.0_192\bin>keytool.exe -import -alias mycert -file .\start.pem -keystore mykeystore.jks
32输入密钥库口令: # 定义新的导入密码
33再次输入新口令:
34所有者: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US
35发布者: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
36序列号: 1fda3eb6eca75c888438b724bcfbc91
37有效期为 Fri Mar 08 20:00:00 CST 2013 至 Wed Mar 08 20:00:00 CST 2023
38证书指纹:
39 MD5: 34:5E:FF:15:B7:A4:9A:DD:45:1B:65:A7:F4:BD:C6:AE
40 SHA1: 1F:B8:6B:11:68:EC:74:31:54:06:2E:8C:9C:C5:B1:71:A4:B7:CC:B4
41 SHA256: 15:4C:43:3C:49:19:29:C5:EF:68:6E:83:8E:32:36:64:A0:0E:6A:0D:82:2C:CC:95:8F:B4:DA:B0:3E:49:A0:8F
42签名算法名称: SHA256withRSA
43主体公共密钥算法: 2048 位 RSA 密钥
44版本: 3
45
46扩展:
47
48#1: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
49AuthorityInfoAccess [
50 [
51 accessMethod: ocsp
52 accessLocation: URIName: http://ocsp.digicert.com
53]
54]
55
56#2: ObjectId: 2.5.29.35 Criticality=false
57AuthorityKeyIdentifier [
58KeyIdentifier [
590000: 03 DE 50 35 56 D1 4C BB 66 F0 A3 E2 1B 1B C3 97 ..P5V.L.f.......
600010: B2 3D D1 55 .=.U
61]
62]
63
64#3: ObjectId: 2.5.29.19 Criticality=true
65BasicConstraints:[
66 CA:true
67 PathLen:0
68]
69
70#4: ObjectId: 2.5.29.31 Criticality=false
71CRLDistributionPoints [
72 [DistributionPoint:
73 [URIName: http://crl3.digicert.com/DigiCertGlobalRootCA.crl]
74, DistributionPoint:
75 [URIName: http://crl4.digicert.com/DigiCertGlobalRootCA.crl]
76]]
77
78#5: ObjectId: 2.5.29.32 Criticality=false
79CertificatePolicies [
80 [CertificatePolicyId: [2.5.29.32.0]
81[PolicyQualifierInfo: [
82 qualifierID: 1.3.6.1.5.5.7.2.1
83 qualifier: 0000: 16 1C 68 74 74 70 73 3A 2F 2F 77 77 77 2E 64 69 ..https://www.di
840010: 67 69 63 65 72 74 2E 63 6F 6D 2F 43 50 53 gicert.com/CPS
85
86]] ]
87]
88
89#6: ObjectId: 2.5.29.15 Criticality=true
90KeyUsage [
91 DigitalSignature
92 Key_CertSign
93 Crl_Sign
94]
95
96#7: ObjectId: 2.5.29.14 Criticality=false
97SubjectKeyIdentifier [
98KeyIdentifier [
990000: 0F 80 61 1C 82 31 61 D5 2F 28 E7 8D 46 38 B4 2C ..a..1a./(..F8.,
1000010: E1 C6 D9 E2 ....
101]
102]
103
104是否信任此证书? [否]: y
105证书已添加到密钥库中
106
107E:\jdk1.8.0_192\bin>keytool.exe -list -v -keystore mykeystore.jks
108# 此输出与上面生成时的输出一致
109输入密钥库口令:
110密钥库类型: jks
111密钥库提供方: SUN
112
113您的密钥库包含 1 个条目
114
115别名: mycert
116创建日期: 2020-7-27
117条目类型: trustedCertEntry
118
119所有者: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US
120发布者: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
121序列号: 1fda3eb6eca75c888438b724bcfbc91
122有效期为 Fri Mar 08 20:00:00 CST 2013 至 Wed Mar 08 20:00:00 CST 2023
123证书指纹:
124 MD5: 34:5E:FF:15:B7:A4:9A:DD:45:1B:65:A7:F4:BD:C6:AE
125 SHA1: 1F:B8:6B:11:68:EC:74:31:54:06:2E:8C:9C:C5:B1:71:A4:B7:CC:B4
126 SHA256: 15:4C:43:3C:49:19:29:C5:EF:68:6E:83:8E:32:36:64:A0:0E:6A:0D:82:2C:CC:95:8F:B4:DA:B0:3E:49:A0:8F
127签名算法名称: SHA256withRSA
128主体公共密钥算法: 2048 位 RSA 密钥
129版本: 3
130
131扩展:
132
133#1: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
134AuthorityInfoAccess [
135 [
136 accessMethod: ocsp
137 accessLocation: URIName: http://ocsp.digicert.com
138]
139]
140
141#2: ObjectId: 2.5.29.35 Criticality=false
142AuthorityKeyIdentifier [
143KeyIdentifier [
1440000: 03 DE 50 35 56 D1 4C BB 66 F0 A3 E2 1B 1B C3 97 ..P5V.L.f.......
1450010: B2 3D D1 55 .=.U
146]
147]
148
149#3: ObjectId: 2.5.29.19 Criticality=true
150BasicConstraints:[
151 CA:true
152 PathLen:0
153]
154
155#4: ObjectId: 2.5.29.31 Criticality=false
156CRLDistributionPoints [
157 [DistributionPoint:
158 [URIName: http://crl3.digicert.com/DigiCertGlobalRootCA.crl]
159, DistributionPoint:
160 [URIName: http://crl4.digicert.com/DigiCertGlobalRootCA.crl]
161]]
162
163#5: ObjectId: 2.5.29.32 Criticality=false
164CertificatePolicies [
165 [CertificatePolicyId: [2.5.29.32.0]
166[PolicyQualifierInfo: [
167 qualifierID: 1.3.6.1.5.5.7.2.1
168 qualifier: 0000: 16 1C 68 74 74 70 73 3A 2F 2F 77 77 77 2E 64 69 ..https://www.di
1690010: 67 69 63 65 72 74 2E 63 6F 6D 2F 43 50 53 gicert.com/CPS
170
171]] ]
172]
173
174#6: ObjectId: 2.5.29.15 Criticality=true
175KeyUsage [
176 DigitalSignature
177 Key_CertSign
178 Crl_Sign
179]
180
181#7: ObjectId: 2.5.29.14 Criticality=false
182SubjectKeyIdentifier [
183KeyIdentifier [
1840000: 0F 80 61 1C 82 31 61 D5 2F 28 E7 8D 46 38 B4 2C ..a..1a./(..F8.,
1850010: E1 C6 D9 E2 ....
186]
187]
188
189
190
191*******************************************
192*******************************************
193
194
195
196E:\jdk1.8.0_192\bin>
重要的操作是导出其中的key,crt部分是通用的。
支持在线操作,见下方在线链接(需要crt(可以是不完整证书链的证书)+key)。
xxxxxxxxxx
111# \jdk\java-1.8.0-openjdk-1.8.0.275-1.b01.dev.redhat.windows.x86_64\bin> .\keytool.exe -v -importkeystore -srckeystore some_domain.jks -destkeystore some_domain.jks.p12 -srcstoretype jks -deststoretype pkcs12 -deststorepass 123456 -destkeypass 123456
2正在将密钥库 some_domain.jks 导入到 some_domain.jks.p12...
3输入源密钥库口令:
4存在现有条目别名 1, 是否覆盖? [否]: y
5已成功导入别名 1 的条目。
6已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
7[正在存储some_domain.jks.p12]
8
9# openssl pkcs12 -nodes -in some_domain.jks.p12 -out yc.huzhou.gov.cn.jks.p12.key_crt
10# 导出时按提示输入密码,然后生成包含key+crt的文本文件,即可自行切割。
11
myssl站点支持检测,然后提供在线补全功能。
补全实际上是添加一段ca certificate段,将其与key重新配置到nginx或封装到jks中即可使用。
提醒:扩展名不重要,扩展名的使用上,许多平台或个人也命名上没做到可识别。
- .DER .CER,文件是二进制格式,只保存证书,不保存私钥。(windows可打开查看)
- .PEM,一般是文本格式,可保存证书,可保存私钥。
- .CRT,可以是二进制格式,可以是文本格式,与 .DER 格式相同,不保存私钥。(windows可打开查看)
- .PFX .P12,二进制格式,同时包含证书和私钥,一般有密码保护。(windows可打开查看)
- .JKS,二进制格式,同时包含证书和私钥,一般有密码保护。jdk中常用 。
xxxxxxxxxx
51yum源使用证书认证:自签名证书
2需要在客户端服务器安装证书
3将证书ca.crt追加到cat ca-key.pem >> /etc/pki/tls/certs/ca-bundle.crt
4
5然后在客户端/etc/hosts中添加对应域名的解析,然后在yum.repo中baseurl中引用域名,而非ip进行调用。
可以在线生成 https://myssl.com/create_test_cert.html
xxxxxxxxxx
31 ssl_certificate /etc/nginx/ssl/server.crt;
2 ssl_certificate_key /etc/nginx/ssl/server.key;
3 ssl_client_certificate /etc/nginx/ssl/ca.crt; # 非必须
xxxxxxxxxx
61#公钥2048,生成key及csr
2openssl genrsa -out ca.key 2048
3openssl req -new -subj /C=CN/ST=JS/L=SZ/O=sth/OU=ou/CN=infra/emailAddress=notify2u@163.com -days 36500 -key ca.key -out ca.csr
4#sha256位,生成证书
5openssl x509 -req -days 36500 -sha256 -signkey ca.key -in ca.csr -out ca.crt
6openssl x509 -text -noout -in ca.crt # 查看证书信息
xxxxxxxxxx
171 <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
2 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
3 clientAuth="false" sslProtocol="TLS" keystoreFile="/xxx/xxx/xxx.jks" keystorePass="xxxx" keyAlias="xxxx"/>
4
5
6 <Connector port="9443" protocol="HTTP/1.1"
7 maxThreads="150" SSLEnabled="true"
8 keystoreFile="conf/some.domain.cn.jks" keystorePass="*******" clientAuth="false" sslProtocol="TLS"
9
10 />
11
12 或
13 <Connector port="9443" protocol="HTTP/1.1"
14 maxThreads="150" SSLEnabled="true"
15 keystoreFile="/conf/some.domain.cn.jks" keystorePass="*******" clientAuth="false" sslProtocol="TLS"
16
17 />
或 ssl单独子标签配置
xxxxxxxxxx
71<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
2 <SSLHostConfig>
3 <Certificate certificateKeystoreFile="/xxx/xxx/xxx.jks" certificateKeyAlias="xxx"
4 certificateKeystorePassword="xxx"
5 type="RSA" />
6 </SSLHostConfig>
7 </Connector>
keystoreFile/certificateKeystoreFile:证书地址,可使用绝对路径,也可以配置相对路径
keyAlias/certificateKeyAlias:生成证书时输入的别名
keystorePass/certificateKeystorePassword:生成证书时输入的密钥
如果有到期的证书,可以先删除,再导入,否则再绑定时,你可能会选错是哪个。
确定后,等待生效。访问地址检查证书是否更新为最新的状态。
这个是证书的显示效果
xxxxxxxxxx
561-----BEGIN CERTIFICATE-----
2MIID7jCCAtagAwIBAgIQER6+Jt29QNOQYPVwOT8jVDANBgkqhkiG9w0BAQsFADBe
3MQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl
4c3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe
5Fw0yMDEyMjgxMTQwMzFaFw0yNTEyMjcxMTQwMzFaMCwxCzAJBgNVBAYTAkNOMR0w
6GwYDVQQDExRuaG1zcngubmFuaGFpLmdvdi5jbjCCASIwDQYJKoZIhvcNAQEBBQAD
7...省略若干行...
83jHp4olXb2pKmrbXdegz5Kg5fBxG7CRkscS9MfDTp8YkAlsmVwyFqyGZR8rpLhqq
9N9aZ1GRQ4zZFXM0CeLMPy+OgRYa5t4J0LV5/mcLydBaKvdyYwRUNSpsO9O1pXqNg
10eRrXqGmECNZN8lW9ywCVLI+FsnygVKTdwExEGVD69wsfhgQdBM9SM53RLTixCLI6
11PJ+Rtxuv7css5kQyEZYYov0pkTmIQOK3U6aJfWi/ms9bouDf6v+vbnN3nQhYBvQc
12JcA=
13-----END CERTIFICATE-----
14-----BEGIN RSA PRIVATE KEY-----
15MIIEpQIBAAKCAQEA2AKSJCirDjtIBopgixiqs2++Y6ZznQq/4nh+XUlEdQsdBL7i
16qqCRYcFwSLQ8q6iUMvq2JhB+zMi7MUxBBxcnaKrDcbIr6nhkD1fElTlSm5TavWfn
17Qd1FCLf/EAb6N+jBqwyFuUgAJSWtGo1ekYMKtFiyYyP9Uhv9EfmhRnFoym1ilnTg
18hDgV0VCot6z/3YZuDyxeS1lRIRUnvLQDbhDPjcTUPLWtQaL/VDPpllO22CAREYk4
19aI0GemOLM9vORs6Ls2yJDcwKMhounqQovXKx/EjxxvOwKsecLYi1MnXM66VYcrkO
20Me9fs1HcUhFN9PzoeQDRDY+FrjaMDIzRP0VJ9wIDAQABAoIBAQCGGeJ8TDsVlLv8
21...省略若干行...
22JuLR2QmBT70k4FFWxfI0Ps3mqnGbYxmZeUSCGyS/gegHGjNVobjkQJLNDo6CU8WH
23Paf1BhDILfCnMMDpgtLzOpN55kqJKVFqDx0NbbOcKHPHSpiEu0gONVIQdOz0rOGj
248D2vWWsCgYEAkRp8iqQw/t9BWGthn6h7PNjaajE58Sqc+E7MOsKNY5BxiLbBFeJo
25BXEmBIdI5Gqn8JCT45GT2tl5ewO/XXPhQX0oTrya04sLkU793lQUOvPLfdfEusaf
26WY3jklogzF6ija05Q4nvoQSKZJLchbfkxXI2BBBrYvqoEUb5whsmFUs=
27-----END RSA PRIVATE KEY-----
28
29-----BEGIN CERTIFICATE-----
30MIID7jCCAtagAwIBAgIQER6+Jt29QNOQYPVwOT8jVDANBgkqhkiG9w0BAQsFADBe
31MQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl
32c3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe
33Fw0yMDEyMjgxMTQwMzFaFw0yNTEyMjcxMTQwMzFaMCwxCzAJBgNVBAYTAkNOMR0w
34GwYDVQQDExRuaG1zcngubmFuaGFpLmdvdi5jbjCCASIwDQYJKoZIhvcNAQEBBQAD
35...省略若干行...
363jHp4olXb2pKmrbXdegz5Kg5fBxG7CRkscS9MfDTp8YkAlsmVwyFqyGZR8rpLhqq
37N9aZ1GRQ4zZFXM0CeLMPy+OgRYa5t4J0LV5/mcLydBaKvdyYwRUNSpsO9O1pXqNg
38eRrXqGmECNZN8lW9ywCVLI+FsnygVKTdwExEGVD69wsfhgQdBM9SM53RLTixCLI6
39PJ+Rtxuv7css5kQyEZYYov0pkTmIQOK3U6aJfWi/ms9bouDf6v+vbnN3nQhYBvQc
40JcA=
41-----END CERTIFICATE-----
42-----BEGIN CERTIFICATE-----
43MIIDuzCCAqOgAwIBAgIQSEIWDPfWTDKZcWNyL2O+fjANBgkqhkiG9w0BAQsFADBf
44MQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxLDAqBgNVBAsTI015U1NMIFRl
45c3QgUm9vdCAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w
46HhcNMTcxMTE2MDUzNTM1WhcNMjcxMTE2MDUzNTM1WjBeMQswCQYDVQQGEwJDTjEO
47MAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRlc3QgUlNBIC0gRm9yIHRl
48c3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTCCASIwDQYJKoZIhvcNAQEB
49BQADggEPADCCAQoCggEBAMBOtZk0uzdG4dcIIdcAdSSYDbua0Bdd6N6s4hZaCOup
50...省略若干行...
51648azH/r/GR1S+mXci0Mg6RrDdLzUO7VSf0JULJf98oEPr9fpIZuRTyWcxiP4yh0
52wVd35OIQBTToLrMOWYWuApU4/YLKvg4A86h577kuYeSsWyf5kk0ngXsL1AFMqjOk
53Tc7p8PuW68S5/88Pe+Bq3sAaG3U5rousiTIpoN/osq+GyXisgv5jd2M4YBtl/NlD
54ppZs5LAOjct+Aaofhc5rNysonKjkd44K2cgBkbpOMj0dbVNKyL2/2I0zyY1FU2Mk
55URUHyMW5Qd5Q9g6Y4sDOIm6It9TF7EjpwMs42R30agcRYzuUsN72ZFBYFJwnBX8=
56-----END CERTIFICATE-----
xxxxxxxxxx
801C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -text
2Certificate:
3Data:
4Version: 3 (0x2)
5Serial Number:
611:1e:be:26:dd:bd:40:d3:90:60:f5:70:39:3f:23:54
7Signature Algorithm: sha256WithRSAEncryption
8Issuer: C = CN, O = MySSL, OU = MySSL Test RSA - For test use only, CN = MySSL.com
9Validity
10Not Before: Dec 28 11:40:31 2020 GMT
11Not After : Dec 27 11:40:31 2025 GMT
12Subject: C = CN, CN = nhmsrx.nanhai.gov.cn
13Subject Public Key Info:
14Public Key Algorithm: rsaEncryption
15RSA Public-Key: (2048 bit)
16Modulus:
1700:d8:02:92:24:28:ab:0e:3b:48:06:8a:60:8b:18:
18aa:b3:6f:be:63:a6:73:9d:0a:bf:e2:78:7e:5d:49:
1944:75:0b:1d:04:be:e2:aa:a0:91:61:c1:70:48:b4:
203c:ab:a8:94:32:fa:b6:26:10:7e:cc:c8:bb:31:4c:
2141:07:17:27:68:aa:c3:71:b2:2b:ea:78:64:0f:57:
22c4:95:39:52:9b:94:da:bd:67:e7:41:dd:45:08:b7:
23ff:10:06:fa:37:e8:c1:ab:0c:85:b9:48:00:25:25:
24ad:1a:8d:5e:91:83:0a:b4:58:b2:63:23:fd:52:1b:
25fd:11:f9:a1:46:71:68:ca:6d:62:96:74:e0:84:38:
2615:d1:50:a8:b7:ac:ff:dd:86:6e:0f:2c:5e:4b:59:
2751:21:15:27:bc:b4:03:6e:10:cf:8d:c4:d4:3c:b5:
28ad:41:a2:ff:54:33:e9:96:53:b6:d8:20:11:11:89:
2938:68:8d:06:7a:63:8b:33:db:ce:46:ce:8b:b3:6c:
3089:0d:cc:0a:32:1a:2e:9e:a4:28:bd:72:b1:fc:48:
31f1:c6:f3:b0:2a:c7:9c:2d:88:b5:32:75:cc:eb:a5:
3258:72:b9:0e:31:ef:5f:b3:51:dc:52:11:4d:f4:fc:
33e8:79:00:d1:0d:8f:85:ae:36:8c:0c:8c:d1:3f:45:
3449:f7
35Exponent: 65537 (0x10001)
36X509v3 extensions:
37X509v3 Key Usage: critical
38Digital Signature, Key Encipherment
39X509v3 Extended Key Usage:
40TLS Web Server Authentication, TLS Web Client Authentication
41X509v3 Authority Key Identifier:
42keyid:28:81:26:05:D1:34:1A:3F:C1:73:0F:BB:93:CF:15:1C:3F:03:BF:7F
43
44Authority Information Access:
45OCSP - URI:http://ocsp.myssl.com
46CA Issuers - URI:http://ca.myssl.com/myssltestrsa.crt
47
48X509v3 Subject Alternative Name:
49DNS:nhmsrx.nanhai.gov.cn
50Signature Algorithm: sha256WithRSAEncryption
516e:0f:92:1a:7b:1f:67:0d:12:54:af:7a:05:95:10:4d:ed:81:
5239:91:a6:34:7d:44:eb:c6:4d:98:fd:06:3d:58:50:09:fd:fb:
5371:3e:dc:d8:cf:87:1f:1e:6e:ae:43:3e:17:a1:b7:b2:69:dc:
54f7:ec:c3:d5:99:1e:d3:03:de:31:e9:e2:89:57:6f:6a:4a:9a:
55b6:d7:75:e8:33:e4:a8:39:7c:1c:46:ec:24:64:b1:c4:bd:31:
56f0:d3:a7:c6:24:02:5b:26:57:0c:85:ab:21:99:47:ca:e9:2e:
571a:aa:37:d6:99:d4:64:50:e3:36:45:5c:cd:02:78:b3:0f:cb:
58e3:a0:45:86:b9:b7:82:74:2d:5e:7f:99:c2:f2:74:16:8a:bd:
59dc:98:c1:15:0d:4a:9b:0e:f4:ed:69:5e:a3:60:79:1a:d7:a8:
6069:84:08:d6:4d:f2:55:bd:cb:00:95:2c:8f:85:b2:7c:a0:54:
61a4:dd:c0:4c:44:19:50:fa:f7:0b:1f:86:04:1d:04:cf:52:33:
629d:d1:2d:38:b1:08:b2:3a:3c:9f:91:b7:1b:af:ed:cb:2c:e6:
6344:32:11:96:18:a2:fd:29:91:39:88:40:e2:b7:53:a6:89:7d:
6468:bf:9a:cf:5b:a2:e0:df:ea:ff:af:6e:73:77:9d:08:58:06:
65f4:1c:25:c0
66-----BEGIN CERTIFICATE-----
67MIID7jCCAtagAwIBAgIQER6+Jt29QNOQYPVwOT8jVDANBgkqhkiG9w0BAQsFADBe
68MQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl
69c3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe
70Fw0yMDEyMjgxMTQwMzFaFw0yNTEyMjcxMTQwMzFaMCwxCzAJBgNVBAYTAkNOMR0w
71GwYDVQQDExRuaG1zcngubmFuaGFpLmdvdi5jbjCCASIwDQYJKoZIhvcNAQEBBQAD
72...省略若干行...
733jHp4olXb2pKmrbXdegz5Kg5fBxG7CRkscS9MfDTp8YkAlsmVwyFqyGZR8rpLhqq
74N9aZ1GRQ4zZFXM0CeLMPy+OgRYa5t4J0LV5/mcLydBaKvdyYwRUNSpsO9O1pXqNg
75eRrXqGmECNZN8lW9ywCVLI+FsnygVKTdwExEGVD69wsfhgQdBM9SM53RLTixCLI6
76PJ+Rtxuv7css5kQyEZYYov0pkTmIQOK3U6aJfWi/ms9bouDf6v+vbnN3nQhYBvQc
77JcA=
78-----END CERTIFICATE-----
79
80C:\Program Files\OpenSSL-Win64\bin>
xxxxxxxxxx
191【信息输出选项:】
2-text:以text格式输出证书内容,即以最全格式输出,
3:包括public key,signature algorithms,issuer和subject names,serial number以及any trust settings.
4-certopt option:自定义要输出的项
5-noout :禁止输出证书请求文件中的编码部分
6-pubkey :输出证书中的公钥
7-modulus :输出证书中公钥模块部分
8-serial :输出证书的序列号
9-subject :输出证书中的subject
10-issuer :输出证书中的issuer,即颁发者的subject
11-subject_hash :输出证书中subject的hash码
12-issuer_hash :输出证书中issuer(即颁发者的subject)的hash码
13-hash :等价于"-subject_hash",但此项是为了向后兼容才提供的选项
14-email :输出证书中的email地址,如果有email的话
15-startdate :输出证书有效期的起始日期
16-enddate :输出证书有效期的终止日期
17-dates :输出证书有效期,等价于"startdate+enddate"
18-fingerprint :输出指纹摘要信息```
19
xxxxxxxxxx
261C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -noout -serial
2serial=111EBE26DDBD40D39060F570393F2354
3
4C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -noout -subject
5subject=C = CN, CN = nhmsrx.nanhai.gov.cn
6
7C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -noout -issuer
8issuer=C = CN, O = MySSL, OU = MySSL Test RSA - For test use only, CN = MySSL.com
9
10C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -noout -fingerprint
11SHA1 Fingerprint=94:16:C4:2F:9D:51:A1:C7:6D:26:C9:E2:76:A5:9F:BE:7A:75:BD:94
12
13C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -noout -issuer_hash
14d8b9d496
15
16C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -noout -startdate -enddate
17notBefore=Dec 28 11:40:31 2020 GMT
18notAfter=Dec 27 11:40:31 2025 GMT
19
20C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -noout -dates
21notBefore=Dec 28 11:40:31 2020 GMT
22notAfter=Dec 27 11:40:31 2025 GMT
23
24C:\Program Files\OpenSSL-Win64\bin>openssl.exe x509 -in D:\ssl\allinone.txt -noout -email
25
26C:\Program Files\OpenSSL-Win64\bin>
x509可以将自身模拟为ca角色,实现证书自签发
xxxxxxxxxx
181*****************************************************************************************
2* 伪命令x509可以像openssl ca一样对证书或请求执行签名动作。注意,openssl x509 *
3* 不读取配置文件,所有的一切配置都由x509自行提供,所以openssl x509像是一个"mini CA" *
4*****************************************************************************************
5-signkey filename:该选项用于提供自签署时的私钥文件,自签署的输入文件"-in file"的file可以是证书请求文件,也可以是已签署过的证书。-days arg:指定证书有效期限,默认30天。
6-x509toreq:将已签署的证书转换回证书请求文件。需要使用"-signkey"选项来传递需要的私钥。
7-req:x509工具默认以证书文件做为inputfile(-in file),指定该选项将使得input file的file为证书请求文件。
8-set_serial n:指定证书序列号。该选项可以和"-singkey"或"-CA"选项一起使用。
9:如果和"-CA"一起使用,则"-CAserial"或"-CAcreateserial"选项指定的serial值将失效。
10:序列号可以使用数值或16进制值(0x开头)。也接受负值,但是不建议。
11-CA filename :指定签署时所使用的CA证书。该选项一般和"-req"选项一起使用,用于为证书请求文件签署。
12-CAkey filename :设置CA签署时使用的私钥文件。如果该选项没有指定,将假定CA私钥已经存在于CA自签名的证书文件中。
13-CAserial filename:设置CA使用的序列号文件。当使用"-CA"选项来签名时,它将会使用某个文件中指定的序列号来唯一标识此次签名后的证书文件。
14:这个序列号文件的内容仅只有一行,这一行的值为16进制的数字。当某个序列号被使用后,该文件中的序列号将自动增加。
15:默认序列号文件以CA证书文件基名加".srl"为后缀命名。如CA证书为"mycert.pem",则默认寻找的序列号文件为"mycert.srl"
16-CAcreateserial :当使用该选项时,如果CA使用的序列号文件不存在将自动创建:该文件将包含序列号值"02"并且此次签名后证书文件序列号为1。
17:一般如果使用了"-CA"选项而序列号文件不存在将会产生错误"找不到srl文件"。
18-extfile filename :指定签名时包含要添加到证书中的扩展项的文件。
xxxxxxxxxx
191【CERTIFICATE EXTENSIONS】
2-purpose:选项检查证书的扩展项并决定该证书允许用于哪些方面,即证书使用目的范围。
3basicConstraints:该扩展项用于决定证书是否可以当作CA证书。格式为basicConstraints=CA:true | false
4:1.如果CA的flag设置为true,那么该证书允许作为一个CA证书,即可以颁发下级证书或进行签名;
5:2.如果CA的flag设置为false,那么该证书就不能作为CA,不能为下级颁发证书或签名;
6:3.所有CA的证书中都必须设置CA的flag为true。
7:4.如果basicConstraints扩展项未设置,那么证书被认为可疑的CA,即"possible CA"。
8keyUsage:该扩展项用于指定证书额外的使用限制,即也是使用目的的一种表现方式。
9:1.如果keyUsage扩展项被指定,那么该证书将又有额外的使用限制。
10:2.CA证书文件中必须至少设置keyUsage=keyCertSign。
11:3.如果设置了keyUsage扩展项,那么不论是否使用了critical,都将被限制在指定的使用目的purpose上。
12例如,使用x509工具自建CA。由于x509无法建立证书请求文件,所以只能使用openssl req来生成请求文件,然后使用x509来自签署。自签署时,使用"-req"选项明确表示输入文件为证书请求文件,否则将默认以为是证书文件,再使用"-signkey"提供自签署时使用的私钥。
13
14[root@xuexi ssl]# openssl req -new -keyout key.pem -out req.csr
15
16[root@xuexi ssl]# openssl x509 -req -in req.csr -signkey key.pem -out x509.crt
17x509也可以用来签署他人的证书请求,即为他人颁发证书。注意,为他人颁发证书时,确保serial文件存在,建议使用自动创建的选项"-CAcreateserial"。
18
19[root@xuexi ssl]# openssl x509 -req -in req.csr -CA ca.crt -CAkey ca.key -out x509.crt -CAcreateserial
xxxxxxxxxx
141#查看 PEM - Privacy Enhanced Mail 格式证书文件命令
2openssl x509 -in roots.pem -text -noout
3
4***
5Validity
6Not Before: Sep 1 12:00:00 1998 GMT # 有效期起始与结束。
7Not After : Jan 28 12:00:00 2028 GMT
8Subject: CN=docs.haudi.top # 对应的域名
9DNS:docs.haudi.top
10***
11
12
13
14
xxxxxxxxxx
21#查看 DER - Distinguished Encoding Rules 格式证书命令:
2openssl x509 -in roots.der -inform der -text -noout
目前的https用的证书rsa密钥位数一般都是2048位
xxxxxxxxxx
51#ssh-keygen -t rsa -b 4096 -f /root/.ssh/new_rsa -N "s3cret" -C "test use only"
2# 实现了一次生成密钥对
3# openssl rsa 生成过程
4# openssl genrsa -out genrsa_2048.rsa 2048
5# openssl genrsa -out genrsa_2048_encrypt.rsa -des3 -passout pass:123456 2048
注意PEM的格式是密钥文本位于一对BEGIN-END之中,但ssh的公钥不是用的这个格式,则需要ssh-keygen从已有的私钥中将公钥输出
xxxxxxxxxx
431[root@centos ssl_test]# openssl rsa -in genrsa_2048_encrypt.rsa -passin pass:123456 -pubout -out genrsa_2048.decrypt.pub
2writing RSA key
3[root@centos ssl_test]# cat genrsa_2048.decrypt.pub
4# 此公钥对于ssh来说是不可使用的,私钥的格式是一致的,可以直接使用
5-----BEGIN PUBLIC KEY-----
6MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3Z09BnN8KUjeVbNGIQ2
7qxoT0fqItBcFDkbPReiE5vQIJw4MOcrCCM86vjwgsfTKkESZncly5WWBmZzPdrN0
82FlzMl4sXBS0Y+KqOa93cKKmwOzGq+/tjmS3QN7Li+2eSQFpwfpAQd3BLHmKOATs
975WqUyBNYPIDaFOjE1bvj3KNE04RR3f7Cb8bjnBxKWpWLt8WTcJ4xnjfafoQwCGi
10OAN71NwCt0MIb+8VDmESsE1OQREsd55fhNhZpN9OSPwPFQBC1/kSwBf4J7azjXQ7
118c5g/Gs3zxUlV6DBpZrcxxVzBJKJWoE65BazRZsQPbULi7eLHoh16ixveeu5fHNK
125wIDAQAB
13-----END PUBLIC KEY-----
14
15# 转换过程(注意是从私钥输出ssh公钥,不是从公钥输出ssh公钥)
16[root@centos ssl_test]# ssh-keygen -y -f genrsa_2048_encrypt.rsa >rsa.pub
17@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
18@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
19@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
20Permissions 0644 for 'genrsa_2048_encrypt.rsa' are too open.
21It is required that your private key files are NOT accessible by others.
22This private key will be ignored.
23Load key "genrsa_2048_encrypt.rsa": bad permissions # 密钥权限过大不合适
24[root@centos ssl_test]# ls -alh
25total 12K
26drwxr-xr-x 2 root root 83 Jul 28 10:25 .
27dr-xr-x---. 13 root root 4.0K Jul 27 16:12 ..
28-rw-r--r-- 1 root root 451 Jul 28 10:17 genrsa_2048.decrypt.pub
29-rw-r--r-- 1 root root 1.8K Jul 28 10:14 genrsa_2048_encrypt.rsa
30-rw-r--r-- 1 root root 0 Jul 28 10:25 rsa.pub
31[root@centos ssl_test]# chmod 600 genrsa_2048_encrypt.rsa
32# 修改权限仅属主可读写
33[root@centos ssl_test]# ssh-keygen -y -f genrsa_2048_encrypt.rsa
34Enter passphrase:
35ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzdnT0Gc3wpSN5Vs0YhDarGhPR+oi0FwUORs9F6ITm9AgnDgw5ysIIzzq+PCCx9MqQRJmdyXLlZYGZnM92s3TYWXMyXixcFLRj4qo5r3dwoqbA7Mar7+2OZLdA3suL7Z5JAWnB+kBB3cEseYo4BOzvlapTIE1g8gNoU6MTVu+Pco0TThFHd/sJvxuOcHEpalYu3xZNwnjGeN9p+hDAIaI4A3vU3AK3Qwhv7xUOYRKwTU5BESx3nl+E2Fmk305I/A8VAELX+RLAF/gntrONdDvxzmD8azfPFSVXoMGlmtzHFXMEkolagTrkFrNFmxA9tQuLt4seiHXqLG9567l8c0rn
36[root@centos ssl_test]# ssh-keygen -y -f genrsa_2048_encrypt.rsa >rsa.pub
37# 输入到文件
38Enter passphrase:
39[root@centos ssl_test]# cat rsa.pub
40ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzdnT0Gc3wpSN5Vs0YhDarGhPR+oi0FwUORs9F6ITm9AgnDgw5ysIIzzq+PCCx9MqQRJmdyXLlZYGZnM92s3TYWXMyXixcFLRj4qo5r3dwoqbA7Mar7+2OZLdA3suL7Z5JAWnB+kBB3cEseYo4BOzvlapTIE1g8gNoU6MTVu+Pco0TThFHd/sJvxuOcHEpalYu3xZNwnjGeN9p+hDAIaI4A3vU3AK3Qwhv7xUOYRKwTU5BESx3nl+E2Fmk305I/A8VAELX+RLAF/gntrONdDvxzmD8azfPFSVXoMGlmtzHFXMEkolagTrkFrNFmxA9tQuLt4seiHXqLG9567l8c0rn
41
42
43
公钥长库对比
xxxxxxxxxx
71# cat .ssh/authorized_keys
2# 4096
3ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCxj+vQv1jow9cVh42M6PHat9nF88vA+Y11EvmXUctebuhFVHa11b3N1fOWMra1RpIJulgUc4JjLRfuJYPri3wTkaPuCHzyFFwQCQPWIOS+YyQAYlE7ACbKENXUgHPHvubdWQT3u5qenauDyZp+JMBbhJ7eUBCuZnZT8eWb7NREPQw3mpMzVatdvToh1eycqWyHzMjhcoG1/nHidcLsqEe+87Dg/TAo/d8W9IGzjZmbELblF2yh91iJ6PTiqbyCcIPJBI8n4dZeOl1NQWpzvfjoz+/ofSTrZxiv6ntgbCKVuz39ygRqeCAZNDphXqPClkPfGDYgcH83SX/nwTh1u+i55HW8bEZCkFssSeAzfxd2p1kYWkR16iOE8sSxsAB10uehIBmk2+ob8bLtLvWgrifDgdpX6KluzoiI0Qtw2C0VOGRD0DM5QR+ELqdCHMHrzPGEEy1EytfcQRmknOnoNe2lJ7f6VQeLCuUc6Mg4h+daSyUg1l3AwD0QU0WnJuASEnZSEemDejLsDeRTPLh0nxm33M6+5NuwVICXtaElbfqjovJ9JBRdXjN8w9Aq1KBOFX6Q7TMNh/3AXJ/Xr+lNGZ05e8JMZziUyPdnpqf7sZ1jYfKDL5XnT67OM8+uUrKhECCSPOPywu7kiRmZhTnSUysrKknnYmCZ/hLV5nHb7VHL+w== imported-openssh-key
4
5#2048
6ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzdnT0Gc3wpSN5Vs0YhDarGhPR+oi0FwUORs9F6ITm9AgnDgw5ysIIzzq+PCCx9MqQRJmdyXLlZYGZnM92s3TYWXMyXixcFLRj4qo5r3dwoqbA7Mar7+2OZLdA3suL7Z5JAWnB+kBB3cEseYo4BOzvlapTIE1g8gNoU6MTVu+Pco0TThFHd/sJvxuOcHEpalYu3xZNwnjGeN9p+hDAIaI4A3vU3AK3Qwhv7xUOYRKwTU5BESx3nl+E2Fmk305I/A8VAELX+RLAF/gntrONdDvxzmD8azfPFSVXoMGlmtzHFXMEkolagTrkFrNFmxA9tQuLt4seiHXqLG9567l8c0rn imported-openssh-key
7
rsa类型,命令提示不支持修改注释,rsa1(ssh1版本使用)支持
但是其实可以直接手动在pub文件中修改或添加的。
-t 加密类型
-b 位数
-f 密钥对保存路径(包含公钥+私钥)
-N 私钥口令
-C 公钥注释信息(可以用命令cat查看公钥文件,查看最后的注释,注释可以随意修改)-c -C "new commit"
xxxxxxxxxx
81系统无法验证证书签发机构问题
2curl -i https://www.kzf.com/.well-known/openid-configuration
3
4Peer’s Certificate issuer is not recognized
5此种情况多发生在自签名的证书,报错含义是签发证书机构未经认证,无法识别。我们加个 -K 虽然可以解决 但不是根本解决。这个就是缺少中间证书链 ,
6
7解决办法是将签发该证书的私有CA公钥cacert.pem是文件内容,追加到/etc/pki/tls/certs/ca-bundle.crt
8如果cacert.pem是关联到自定义域名的,则需要添加对应的域名解析到hosts文件。
证书申请后,一般包括以下目录及文件
xxxxxxxxxx
181[root@centos scs1594944913408]# tree -L 2
2.
3├── Apache
4│ ├── ca.crt
5│ ├── server.crt
6│ └── server.key
7├── IIS
8│ ├── keystorePass.txt
9│ └── server.pfx
10├── Nginx
11│ ├── server.crt
12│ └── server.key
13├── Tomcat
14│ ├── keystorePass.txt
15│ └── server.jks
16└── domain.csr
17
18
xxxxxxxxxx
631[root@centos scs1594944913408]# ls -alh
2drwxr-xr-x 2 root root 56 Jul 28 11:42 Apache
3-rw-r--r-- 1 root root 1.1K Jul 28 10:41 domain.csr
4drwxr-xr-x 2 root root 48 Jul 28 11:42 IIS
5drwxr-xr-x 2 root root 42 Jul 28 11:42 Nginx
6drwxr-xr-x 2 root root 48 Jul 28 11:42 Tomcat
7[root@centos scs1594944913408]# ls -alh Nginx/
8-rw-r--r-- 1 root root 3.6K Jul 28 10:41 server.crt
9-rw-r--r-- 1 root root 1.7K Jul 28 10:41 server.key
10[root@centos scs1594944913408]# ls -alh IIS/
11-rw-r--r-- 1 root root 16 Jul 28 10:41 keystorePass.txt
12-rw-r--r-- 1 root root 4.6K Jul 28 10:41 server.pfx
13[root@centos scs1594944913408]# ls -alh Tomcat/
14-rw-r--r-- 1 root root 16 Jul 28 10:41 keystorePass.txt
15-rw-r--r-- 1 root root 4.0K Jul 28 10:41 server.jks
16[root@centos scs1594944913408]# ls -alh a
17ls: cannot access a: No such file or directory
18[root@centos scs1594944913408]# ls -alh Apache/
19-rw-r--r-- 1 root root 1.7K Jul 28 10:41 ca.crt
20-rw-r--r-- 1 root root 2.0K Jul 28 10:41 server.crt
21-rw-r--r-- 1 root root 1.7K Jul 28 10:41 server.key
22[root@centos scs1594944913408]# cat Nginx/server.crt
23# 可对比验证证书关系:Nginx/server.crt = cat Apache/ca.crtcat + Apache/server.crt
24# nginx 有最多有两个段,apache是分开的。
25-----BEGIN CERTIFICATE-----
26MIIFlTCCBH2gAwIBAgIQDuKyL6/4ReKnh7vNZ99x9jANBgkqhkiG9w0BAQsFADBu
27MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
28省略20行
29RCdCdKeHK0KalvlieleblsU+NjGvF6dE05TUJpRcMog+I1O9dcOzubeWKi1Mw9Ls
308DzwdHmu8tsh+33b/QoHplWRxAIWoTGc/eB3hdpzik+lVoBx9x75cb5OnRuu+Qdr
31gx8HKuV/ObM+P6UEZ7DANzTj4oLmiIwyEVQxIvijMUwKLg1j1SUWThYln2JeCGun
32Q6kQSwCEMF/d1mdMa0HhqMIsit6QENf/ez2LyOJEGEao/sPTZUJHocA=
33-----END CERTIFICATE-----
34-----BEGIN CERTIFICATE-----
35MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
36MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
37省略20行
384YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
39sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
40rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
41-----END CERTIFICATE-----
42
43[root@centos scs1594944913408]# cat Apache/server.crt
44-----BEGIN CERTIFICATE-----
45MIIFlTCCBH2gAwIBAgIQDuKyL6/4ReKnh7vNZ99x9jANBgkqhkiG9w0BAQsFADBu
46MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
47省略20行
48RCdCdKeHK0KalvlieleblsU+NjGvF6dE05TUJpRcMog+I1O9dcOzubeWKi1Mw9Ls
498DzwdHmu8tsh+33b/QoHplWRxAIWoTGc/eB3hdpzik+lVoBx9x75cb5OnRuu+Qdr
50gx8HKuV/ObM+P6UEZ7DANzTj4oLmiIwyEVQxIvijMUwKLg1j1SUWThYln2JeCGun
51Q6kQSwCEMF/d1mdMa0HhqMIsit6QENf/ez2LyOJEGEao/sPTZUJHocA=
52-----END CERTIFICATE-----
53[root@centos scs1594944913408]# cat Apache/ca.crt
54-----BEGIN CERTIFICATE-----
55MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
56MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
57省略20行
584YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
59sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
60rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
61-----END CERTIFICATE-----
62[root@centos scs1594944913408]#
63
如何在tomcat上安装SSL证书https://support.huaweicloud.com/scm_faq/scm_01_0022.html
如何在Nginx上安装SSL证书https://support.huaweicloud.com/scm_faq/scm_01_0023.html
puttygen、xshell、securecrt均支持从私钥导出公钥。
比如putty保存的密钥文件(ppk扩展名)是公私在同一个文件中。里面表示了公钥的行数和私钥的行数,但这个是专用的不能用从ppk文本中提取相关行复制粘贴为PEM格式(BEGIN-END对)
xxxxxxxxxx
271PuTTY-User-Key-File-2: ssh-rsa
2Encryption: none
3Comment: rsa-key-20200728
4Public-Lines: 6
5AAAAB3NzaC1yc2EAAAABJQAAAQEAji3pW2Q3BsGdt4QUjqP+Um8KmkEOvaIQiAqK
6MSvlcBXwyMrMlo15Ap3f9AcjxLZXgWmQTp5tJigLBF8z60lf+340cy6wNI5HHtij
7U3Zoi52xTx1Dj93X+offyEdA47TTjhubk1msxpK7lDj/UAGJzD1lEAOawzXkMtel
8gK4mKFI6ntmOH0L2yV1GZpLmp2zFk2qSpOC6fwESgUWbtY0Mf+iCzGAC0adfOFH/
9vx1GU4QfBKey39Qcr1imS0cWAmt+8ie/9BeQErIcgUwN3ht4k0Q2X9xjO/LHQ4uw
10CjmSIKMCBtZOxpcCWYvOIRDmae2+IlKNcK312fCa104IcIIjFw==
11Private-Lines: 14
12AAABAAPXujLnCGf3ZSCitHKOz4Wv+V4dbxnhyRhu/NDlgr3XFFh0Lwr855hJdMFn
13+gw8R43gQiujarvXkZhVmZ6TR8iG3tKuPB0YmiNto4yiVdpCiEBokx+QX8iANnsI
142D2BbYBhnGvEJ0OjGdOS1nfIsLJ+MynyQnP6iaCCXmtC+hzD6Vtp68NGgfLpn9am
15SLK1ayC9SW1gzYxnVIcmVosKTvdyooC9BIAYKGPgzijNdgpoCBuBDe0GWlsSHAYv
16q6AkXdOt+7jh7FTX0NeIzf25xUvZ7uy4KbNiWqSSesFCu+53r2XaK0udZ3EjlF28
17tk1t68Rmx4JVrDkey0kZvC7py/0AAACBANeKGuwjQqgvuHYwc5fcUOOJ0A5xGDSy
18bqfOsFtOTxiE1KruPmNwXQVTVihFO77aJmlpdTJlE+QuqKaBl35thvB49uNRJDCU
19yNN0BHbtdB/QzjtvB9w7Md65lVdRC4zYJ/Teox4LGOcGTovJEBhHDrHnrbNw4CZw
20y9dxBwkxABP5AAAAgQCo3m+Ows+GfeC2MBbM9uNmTj7nZMrQgaMzKgq+TsCKN4Jb
21Qs/43cyDdX4LlC93+FSJoYt9ONUpVxHy5MvJb6L+4Qt66kw3OrgZ5oHRRM3Uy/Zy
22ujaAE4nOwMqayojb0S6zb6ruzb4n+RjQy7p08fv418oEKWvrJ7Fh1Y7Md7eTjwAA
23AIBXskj7V2tt5f4VXAin3aN1sSk6nMg2TADCWCHupp0cRX+fPEG/lDQh4JYp1Q8m
24ID/UrSHBOt2ofQBoFCwT8ngcPpuYGgmgOpELYcnEDPo+b87Lm6wf5U0dVsPAJXeT
25UaTUJBbfGqv+K+Wng3K1+r1jg7A7vL3dPJirdp/n3QMMtw==
26Private-MAC: 45dc71e11a4823cbf38b54d0044b798ccc8175cb
27
https://myssl.com/haudi.top?status=q
搜索引擎关键词:ssl证书在线转换
https://myssl.com/create_test_cert.html 先生成,再转换为标准java key storeage。此可以生成自签名证书。
https://www.getssl.cn/export_keystore.php 注意大小 nginx pem4k key2k = jks3k ,另外5k一般不正常。
https://www.myssl.cn/tools/merge-jks-cert.html nginx crt+key 在线转jks(tomcat用)
https://www.myssl.cn/tools/merge-jks-cert.html
https://www.ssleye.com/jks_pkcs12.html
https://developer.qiniu.com/fusion/kb/3703/the-certificate-chain-is-what 什么是证书链
xxxxxxxxxx
81完整的证书内容一般分为3级,服务端证书-中间证书-根证书,即 end-user certificates, intermediates Certificates 和 root Certificates。
2
3end-user :用来加密传输数据的公钥的证书,是https中使用的证书。开发者牛小七把证书部署在qiniu.com 的服务器上。
4intermediates:CA用来认证公钥持有者身份的证书,即确认https使用的end-user证书是属于qiniu.com的证书。
5root:用来认证intermediates证书是合法证书的证书。
6简单来说,end-user证书上面几级证书都是为了保证end-user证书未被篡改,保证是CA签发的合法证书,进而保证end-user证书中的公钥未被篡改。我们使用end-user certificates来确保加密传输数据的公钥(public key)不被篡改,而又如何确保end-user certificates的合法性呢?这个认证过程跟公钥的认证过程类似,首先获取颁布end-user certificates的CA的证书,然后验证end-user certificates的signature。一般来说,root CAs不会直接颁布end-user certificates的,而是授权给多个二级CA,而二级CA又可以授权给多个三级CA,这些中间的CA就是intermediates CAs,它们才会颁布end-user certificates。
7
8七牛云证书管理,会在用户上传证书的时检测证书的完整性,证书链不完整会自动帮用户补全证书链,但无法保证补全的证书链100%是正确的。所以需要用户选择使用自传的证书还是系统补全后的证书。
xxxxxxxxxx
11