首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenSSL与可信系统认证

OpenSSL与可信系统认证
EN

Stack Overflow用户
提问于 2015-10-29 17:34:19
回答 1查看 758关注 0票数 5

因此,我已经知道如何使用SSL_CTX_load_verify_locations()指定受信任证书的位置。现在,文档说明如下:

SSL_CTX_load_verify_locations()指定用于验证目的的CA证书所在的ctx位置。通过CAfile和CApath提供的证书是可信的。

还说:

当查找CA证书时,OpenSSL库将首先搜索CAfile中的证书,然后搜索CApath中的证书。

这很好。但是没有提到驻留在OPENSSLDIR中的可信系统证书。

  1. 在CAfile和CApath失败后是否检查系统证书?
  2. 调用SSL_CTX_set_default_verify_paths()覆盖SSL_CTX_load_verify_locations()吗?或者它们是并行工作的,即信任的系统证书和由CAfile和CApath指定的证书?
  3. 如果使用SSL_CTX_get_cert_store()手动将证书添加到证书存储区,即根本不调用SSL_CTX_load_verify_locations(),那么在这种情况下会发生什么?只检查商店证书吗?在这种情况下,要禁用/启用受信任的系统证书检查吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-04 16:48:32

好吧..。所以我试了一下,找出了我需要知道的。

设置:

  • 双方启用对等验证的简单客户端和服务器
  • 我创造了两个CA。让我们称他们为SS (自签名)和TR (可信)。
  • SS用于创建客户端(SS_C)和服务器(SS_S)证书。
  • TR用于创建客户端(TR_C)和服务器(TR_S)证书。
  • TR被散列并添加到默认CA目录中。

万无一失测试:

  • openssl verify of SS_C和SS_S失败,除非我指定CAfile
  • openssl verify of TR_C和TR_S成功 结果如预期

客户机/服务器基本测试:

  • 没有验证路径调用: SS失败- TR失败
  • 调用SSL_CTX_set_default_verify_paths:SS失败- TR成功
  • 用SS作为SSL_CTX_load_verify_locations调用CAfile: SS成功-- TR失败 结果如预期

现在,让我们来谈谈更有趣的事情。

SSL_CTX_set_default_verify_paths SSL_CTX_load_verify_locations**:**的调用

在这种情况下,对SSL_CTX_load_verify_locations的调用总是以SS作为CAfile。

  • 无论调用的顺序如何,TR都会成功。
  • SS成功了--不管呼叫的顺序如何 有趣的结果--至少对我来说 现在,我可以预期使用证书存储区也会正常工作。

使用X509_STORE 而不是 SSL_CTX_load_verify_locations**:**的

在本例中,我创建了SS的字节数组,获取上下文的证书存储,并将SS添加到其中。

  • 只获取上下文的存储并将SS添加到其中: SS成功-- TR失败
  • 只有获取上下文的存储(以测试它是否添加了默认的受信任证书):SS失败- TR失败
  • 调用SSL_CTX_set_default_verify_paths + get上下文的存储并将SS添加到其中: SS成功-- TR成功 很好..。它确实起作用
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33421002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档