玩转数字证书的一些笔记
目录
RSA公私钥对
生成公私钥对,默认使用的是PEM格式写到文件中。
|
|
查看公私钥对
|
|
包含了以下几个数字
- modulus
- publicExponent
- privateExponent
- prime1
- prime2
- exponent1
- exponent2
- coefficient
对应到RSA算法中
n –> modulus
e –> publicExponent
d –> privateExponent
其中n和e组成了公钥,n和d组成私钥
提取出公钥,输出到公钥文件root.pub
|
|
查看公钥文件
|
|
仅包含
- modulus
- exponent
对应root.key中存储的
publicExponent
生成自签署CA证书
- 生成公私钥 root.key
|
|
- 生成证书请求文件 root-req.csr
|
|
- 生成根证书 root-cert.cer
|
|
此时得到的root-cert.cer
以及root.key
,就可以算是自己私有的一个CA证书机构了,可以对其他证书做签发。
-CAcreateserial
参数,会额外生成一个root-cert.srl
证书序列号文件。初始序列号为随机数。每次使用该CA证书做签发其他证书时,自动读取该文件的值+1再写入新证书中。
使用自签署的CA证书签发客户端或服务端证书
- 生成客户端的公私钥对
|
|
- 生成证书请求文件
|
|
- 签发证书
|
|
查看信息
查看公私钥对KEY信息
|
|
查看证书请求文件CSR信息
|
|
查看证书信息
|
|
-noout
代表不将文件内容再次输出
-text
展示描述信息
查看证书序列号
|
|
关于文件名
PEM格式则使用Base64编码二进制数据的方式存储了证书数据。
-----BEGIN (label) -----
...
-----END (label) -----
这个label决定了被编码消息的类型,通常这些类型有如下一些:
" CERTIFICATE “, " CERTIFICATE REQUEST “, " PRIVATE KEY " , " X509 CRL "
PEM 格式的数据通常存储在以下后缀的文件中。
.pem
.crt
证书文件,*nix系统常用.cer
微软使用的证书文件.csr
证书请求文件.key
(公钥、私钥)
这个PEM文件中的lable字段比文件后缀名更加准确地代表了数据类型,因为许多不同类型的数据都可以保存在.pem
结尾的文件中。