数字证书介绍

一. 什么是数字证书

        在数字签名一节我们提到,使用数字签名存在的问题是公钥接收者无法确认公钥是否真的由发送者发送,如果公钥被中间人掉包,接收者也无从得知,数字证书就是为了解决这个问题的,所以数字证书又称为公钥证书,简称证书。它记录了公钥,并且有公钥对应的组织,签发证书的机构,证书序列号,密钥长度等,它由权威的认证机构颁发,接收者接收到证书之后,只要认证该证书确实是由权威机构颁发的,即可认为该证书对应的信息都是可信任的。

        权威的证书颁发机构称为 CA(Cerificate Autority),也叫证书授权中心,它负责管理和签发证书,比较著名的 CA 机构有美国的 verisign 公司,以及加拿大的 ENTRUST 公司等。

二. 证书使用的场景

        如上所示,Bob 想要对自己的公钥进行认证,生成数字证书以便 Alice 可以拿到 Bob 的公钥,不被中间人拦截掉包,流程如下。

1. Bob 使用非对称加密算法生成密钥对(公钥和私钥),然后将公钥发送给权威的证书颁发机构,证书颁发机构使用自己的私钥对 Bob 的公钥进行数字签名,生成对应的公钥证书

2. 当 Alice 想要给 Bob 发送消息时,首先获取 Bob 的公钥证书,然后使用权威认证机构的公钥验证证书的数字签名,确认接收到的公钥证书确实是可信任,拿出 Alice 的公钥(权威认证机构的公钥证书一般预装在操作系统中,我们也可以自己添加信任的公钥证书)

3. Alice 拿到 Bob 的公钥后,就可以给 Bob 发送消息,消息使用 Bob 公钥加密,只有 Bob 有私钥解密消息

三. 证书格式以及证书包含的信息

        X.509 是一种通用的证书格式,该证书结构使用 ASN.1 描述数据结构并进行编码,我们可以从 myssl 查看某些网站对应的证书,我们以 bilibili.com 的证书为例说明证书格式和包含的信息。

         如上是证书内容,证书包含的主要信息如下。

版本号 Version:证书规范的版本号,目前的版本号为 3,其值为 0x02

序列号 Serial Number:由证书颁发机构为每一个证书分配的序列号,可以唯一标识一个证书,可以追踪,撤销证书等

签名算法 Signature Algorithm:对公钥证书进行数字签名的方式

颁发者 Issuer:证书的颁发者,如 GlobalSign nv-sa

有效期 Validity:证书的有效期,包括起始和失效时间

主体 Subject:证书拥有者的标识信息,如组织名称,国家省份城市信息

主体的公钥信息 Subject Public Key Info:包括生成公钥的非对称加密算法,公钥长度

        我们还可以看到证书的信任链,*.bilibili.com 证书是由 GlobalSign RSA OV SSL CA 2018 机构办法的,而 GlobalSign RSA OV SSL CA 2018 是由 GlobalSign 机构信任的子机构。

四. 使用openssl生成自签名证书

        如果我们需要一个受信任的证书,我们可以向 CA 机构申请,如果只是需要做一些测试,我们可以使用 openssl 生成一个自签名的证书,使用之前你需要确保你已经安装了 openssl。

1. 在终端输入 openssl 进入命令交互界面

2. 使用 genrsa 生成一个 RSA 私钥,注意需要提供一个至少 4 位长度的密码

OpenSSL> genrsa -des3 -out server.key 2048

2048 表示密钥长度,-des3 表示使用对称加密算法 3DES 加密私钥文件,密钥为输入的密码

3. 去除私钥的密码(可选)

OpenSSL> rsa -in server.key -out server.key

4. 生成证书签名请求中间文件

OpenSSL> req -new -key server.key -out server.csr

输入该命令后会询问证书的信息

5. 生成自签名证书

OpenSSL> x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椛茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值