• 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

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

    你的鼓励,我的动力! 

  • 相关阅读:
    风光储一体化园区 | 图扑新能源可视化
    mysql千万数据快速插入-实战
    PG守护进程(Postmaster)——辅助进程PgStat主流程
    PHP 反序列化漏洞:手写序列化文本
    萌新源api管理系统更新教程
    初探HarmonyOS之ArkTs使用教程
    《动手学深度学习 Pytorch版》 4.4 模型选择、欠拟合和过拟合
    Codeforces Round #725 (Div. 3) F. Interesting Function
    【Java基础】成员变量和局部变量及封装
    基于xv6的类Uinx操作系统实现
  • 原文地址:https://blog.csdn.net/powervip/article/details/126608678