openssl证书链的校验过程

 

X509_STORE_CTX这个结构主要是用来校验证书用,一般都会使用X509_STORE这个已经设置好的对象来初始化X509_STORE_CTX,初始化函数如下:

 

int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,

    STACK_OF(X509) *chain)

 

这个初始化函数参数说明一下,第二个参数store是用来初始化第一个参数ctx,第三个参数x509表示待验证的证书,chain是不信任证书链。

 

具体的校验函数也是在该init函数里面设定的,如果自己不需要(一般也不需要),那么使用openssl自带实现的internal_verify函数来进行证书链的校验。

if (store && store->verify)

ctx->verify = store->verify;

else

ctx->verify = internal_verify;

 

 

另外这个init函数中还设置了很多回调函数,基本上都是把X509_STORE的函数抄一份给X509_STORE_CTX。下面开始具体讲一讲internal_verify这个函数。

 

很早时候看过一些介绍性的书籍讲证书链的校验,一直以为证书校验过程是从leaf校验跟root的。实际看了openssl实现源码才知道原来是反着来的。

 

初始化X509_STORE_CTX这个结构之后,就开始证书链的校验了。其中校验的证书有两种类型:

 

1. 自签名证书。这种类型校验比较简单,从本地sto

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenSSL是一个开放源代码的加密工具包,可以用来进行SSL/TLS协议的实现。在使用OpenSSL操作证书时,可以采取以下步骤: 1.生成私钥和证书请求:首先,使用OpenSSL生成一个私钥和一个证书请求(CSR)。私钥用来签署证书,而CSR包含了申请者的公钥信息。 2.自签名证书:接下来,使用生成的私钥和CSR生成一个自签名证书。自签名证书可以用于测试或者临时环境,但在生产环境中,应该使用由受信任的第三方机构签名的证书。 3.签名证书:如果要获得第三方机构签名的证书,需要将CSR发送给证书颁发机构(CA)。CA会对CSR进行验证,并使用CA的私钥签名生成一个证书。这个证书可以用来在客户端与服务器之间建立信任。 4.构建证书证书是由证书和根证书构成的一条验证路径。在OpenSSL中,可以通过将证书和根证书连接在一起来构建证书。同时,还需要将每个证书保存为单独的文件,以便于使用。 5.验证证书:在服务端和客户端之间建立连接时,服务器需要将证书发送给客户端。客户端使用CA的公钥来验证证书有效性。如果证书中的任何一个证书无效或不受信任,连接将被中断。 通过以上步骤,我们可以使用OpenSSL操作证书。这样可以确保在SSL/TLS连接中建立起合法且可信的通信路径,保证通信的安全性和准确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值