key、csr、crt 区别
- key
通常指私钥
- CSR
是Certificate Signing Request的缩写,即证书签名申请,这不是证书,这是要求CA给证书签名的一种正式申请,该申请包含申请证书的实体的公钥及该实体店某些信息。该数据将成为证书的一部分。CSR始终使用它携带的公钥所对应的私钥进行签名。
- CRT
即 certificate的缩写,即证书
创建根证书
先创建root.key
openssl genrsa -aes256 -out root.key 4096
用root.key 去做证书申请文件 csr
openssl req -new -key root.key -out root.csr
用key和csr创建证书crt
openssl x509 -req -days 3650 -sha256 -in root.csr -signkey root.key -out root.crt
创建中间证书
先创建middle.key
openssl genrsa -aes256 -out middle.key 4096
用middle.key 去做证书申请文件 csr
openssl req -new -key middle.key -out middle.csr -subj "/C=CN/L=Shanghai/O=LDW/OU=LDW STD/CN=LDW middle CA"
用key和csr创建证书crt
openssl x509 -req -days 1800 -sha256 -CA root.crt -CAkey root.key -CAcreateserial -CAserial serial -in middle.csr -out middle.crt
创建设备证书
先创建device.key
openssl genrsa -aes256 -out device.key 4096
用middle.key 去做证书申请文件 csr
openssl req -new -key device.key -out device.csr -subj "/C=CN/L=Shanghai/O=LDW/OU=LDW STD/CN=LDW middle CA"
用key和csr创建证书crt
openssl x509 -req -days 365 -sha256 -CA middle.crt -CAkey middle.key -CAserial serial -in device.csr -out device.crt
之后用复合证书验证服务端证书:
openssl verify -CAfile middle.crt device.crt
只有如下输出才是正确的:
device.crt: OK