searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

openssl操作数字证书

2023-08-31 07:05:20
35
0

      数字证书指的是由证书颁发机构(Certificate Authority)签发的电子证书,它唯一绑定了用户身份信息与非对称密钥,用于识别用户和加密数据。只有权威CA机构签发的证书才能够在网络中被信任。比如说由VerSign公司签发的数字证书,后者由国内数字证书认证中心签发的证书。这些证书一般都是收费服务。如果是企业内部部署系统需要或者学习研究使用,可以使用工具自己制作数字证书,简单方便,缺点是在Internet网络中不受认可,浏览器或者应用APP会给出证书不可靠的告警信息。

      OpenSSL 是在 Linux 和其他系统上流行的生产级库和工具包,是一个优秀的密码算法库开源实现,同时提供了数字证书功能和SSL协议栈功能。下面我们看下如果用OpenSSL命令行实现。

      之前我们提到了数字证书是将用户身份和非对称密钥进行绑定,常用的非对称算法一般有RSA,DSA,EC,国密SM2算法,我们以常用的RSA证书为例。

      首先我们创建一个自签名证书作为根CA证书,具体步骤如下:

      1.创建一个RSA私钥文件rsa.priv,  文件经过了PEM格式编码,内容为可显示的字符

     

    2. 由私钥文件rsa.priv得到公钥文件rsa.pub

     

  3. 生成数字证书请求文件ca.csr, ca.csr文件中保存了我们的私钥、身份等相关信息,其中私钥信息是加密存储的。我们可以使用命令查看ca.csr的内容。

     

   

4. 使用我们自己的私钥文件rsa.priv签发证书信息,通过输出信息可以看到,这是一个自签名“self-signature”证书。

    ca.ext是我们提前准备的一个CA属性文件,它会在生成自签名证书上打上CA标记。

    因为根CA一定是自签名证书,但是自签名证书不一定是根CA

   

5.查看证书文件ca.pem的具体信息

   

    然后我们使用得到的自签名的根证书ca.pem,签发一个正常使用的实体证书,步骤如下:

    1.相同的命令得到实体证书的私钥entry.pirv、公钥entry.pub和证书请求文件entry.csr

 

    2.使用根CA的私钥文件ca.priv签名

 

   3.显示数字证书内容

 

       到此我们得到了根CA(ca.pem)和用户证书(entry.pem)文件,可以使用它们部署https等相关服务。我们可以使用openssl命令验证根CA与用户证书的签发关系。

 

0条评论
作者已关闭评论
燃烧的蔬菜
3文章数
0粉丝数
燃烧的蔬菜
3 文章 | 0 粉丝
燃烧的蔬菜
3文章数
0粉丝数
燃烧的蔬菜
3 文章 | 0 粉丝
原创

openssl操作数字证书

2023-08-31 07:05:20
35
0

      数字证书指的是由证书颁发机构(Certificate Authority)签发的电子证书,它唯一绑定了用户身份信息与非对称密钥,用于识别用户和加密数据。只有权威CA机构签发的证书才能够在网络中被信任。比如说由VerSign公司签发的数字证书,后者由国内数字证书认证中心签发的证书。这些证书一般都是收费服务。如果是企业内部部署系统需要或者学习研究使用,可以使用工具自己制作数字证书,简单方便,缺点是在Internet网络中不受认可,浏览器或者应用APP会给出证书不可靠的告警信息。

      OpenSSL 是在 Linux 和其他系统上流行的生产级库和工具包,是一个优秀的密码算法库开源实现,同时提供了数字证书功能和SSL协议栈功能。下面我们看下如果用OpenSSL命令行实现。

      之前我们提到了数字证书是将用户身份和非对称密钥进行绑定,常用的非对称算法一般有RSA,DSA,EC,国密SM2算法,我们以常用的RSA证书为例。

      首先我们创建一个自签名证书作为根CA证书,具体步骤如下:

      1.创建一个RSA私钥文件rsa.priv,  文件经过了PEM格式编码,内容为可显示的字符

     

    2. 由私钥文件rsa.priv得到公钥文件rsa.pub

     

  3. 生成数字证书请求文件ca.csr, ca.csr文件中保存了我们的私钥、身份等相关信息,其中私钥信息是加密存储的。我们可以使用命令查看ca.csr的内容。

     

   

4. 使用我们自己的私钥文件rsa.priv签发证书信息,通过输出信息可以看到,这是一个自签名“self-signature”证书。

    ca.ext是我们提前准备的一个CA属性文件,它会在生成自签名证书上打上CA标记。

    因为根CA一定是自签名证书,但是自签名证书不一定是根CA

   

5.查看证书文件ca.pem的具体信息

   

    然后我们使用得到的自签名的根证书ca.pem,签发一个正常使用的实体证书,步骤如下:

    1.相同的命令得到实体证书的私钥entry.pirv、公钥entry.pub和证书请求文件entry.csr

 

    2.使用根CA的私钥文件ca.priv签名

 

   3.显示数字证书内容

 

       到此我们得到了根CA(ca.pem)和用户证书(entry.pem)文件,可以使用它们部署https等相关服务。我们可以使用openssl命令验证根CA与用户证书的签发关系。

 

文章来自个人专栏
PKI数字证书
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0