openssl的使用方法(使用openssl生成csr文件和私钥key文件)

1. 概念解释:

CSR文件:CSR,Certificate Signing Request的缩写,即证书签名请求,CSR文件是申请单位申请SSL证书时所需要的一个数据文件。CA使用CA自己的私钥对CSR文件的内容的摘要进行签名,生成数字证书PEM文件

2. openssl的使用方法

2.1.生成csr文件和私钥key文件

  • 使用RSA加密算法

openssl req -new –SHA256 -newkey rsa:2048 -nodes -keyout user5-org3.key -out user5-org3.csr -subj "/C=CN/ST=sh/L=sh/O=/OU=IT/CN=user5-org3"

说明:

user5-org3.csr就是生成的csr文件,user5-org3.key就是生成的私钥key文件。

私钥key文件通常有两种格式:pkcs#1和pkcs#8,默认为pkcs#1

pkcs#1格式包含如下的头部和尾部:

-----BEGIN EC PRIVATE KEY-----

base64的编码数据

-----END EC PRIVATE KEY-----

pkcs#8格式包含如下的头部和尾部:

-----BEGIN PRIVATE KEY-----

base64的编码数据

-----END PRIVATE KEY-----

  • 使用ECDSA加密算法

先生成ecparam.pem文件

openssl ecparam -out ecparam.pem -name prime256v1

再生成csr文件和私钥key文件

openssl req -new -SHA256 -newkey ec:ecparam.pem -nodes -keyout user5-org3.key -out user5-org3.csr -subj "/C=US/ST=North Carolina/L=North Carolina/O=/OU=user/CN=user5-org3"

说明:

这个例子指定了生成的csr文件里的一些域,通常使用的域的含义如下:

CN(Common Name):公用名,必填项,一般指网站域名全称,包括您的主机名+域名,例如www.163.com。公用名必须与要用该服务器证书的主机的全名完全相同,如www.163.com的证书是不能用在mail.163.com的主机上。163.com,www.163.com和mail.163.com这3个是3个不同的公用名

O(Organization):申请单位组织名,必填项,

OU(Organization Unit):申请单位的单位部门

C(City):申请单位所在的城市

ST(State/Province):申请单位所在的省份

C(Country Name):国家名称,一般用的是两位大写的国家代码,如:CN表示中国

2.2.解析csr文件

openssl req -in user5-org3.csr -noout -text

上面截图中的pub字段是公钥,共65个字节,第一个字节是0x04,后面的64个字节分别是公钥的X(32个字节)和Y(32个字节)

Signature Algotithm表明所使用的哈希算法是SHA256(用于计算摘要),加密算法是ecdsa(以太坊和超级账本都是使用ecdsa)。后面的字节是使用私钥对Signature Algotithm字段上面的内容进行签名的签名值。其过程是:先使用SHA256对签名内容进行哈希获得待签名的摘要(哈希值),再使用私钥对摘要通过ecdsa加密算法进行签名。

2.3.解析pem文件

pem文件是ca server通过自己的私钥对csr文件进行签名后获得的文件

openssl x509 -in user5-org3.pem -noout -text

------------------------------------------------------------------------------

我的公众号:区块链战斗机

我的学习笔记:www.study.win

如果你觉得这篇文章写得还可以,请帮忙点个赞,谢谢!著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处并保留原文链接。

你的鼓励,我的动力! 

猜你喜欢

转载自blog.csdn.net/powervip/article/details/126608678