【问题标题】:SSL_CTX_set_verify() callback and current depthSSL_CTX_set_verify() 回调和当前深度
【发布时间】:2016-01-19 19:02:06
【问题描述】:

我正在用 C 语言为 SSL_CTX_set_verify() 编写自己的回调函数来执行额外的证书检查(当 preverify_ok 参数为 1 时)。但是,我想对叶证书(深度 = 0)执行检查。

有函数X509_STORE_CTX_get_error_depth() 可以获取错误的深度;但即使没有错误,我也想要当前深度,所以我只能在深度 = 0 时执行我的附加检查。 (注意函数SSL_CTX_get_verify_depth()返回深度limit不是当前深度。)

有什么方法可以做我想做的事吗?

【问题讨论】:

    标签: c ssl openssl ssl-certificate


    【解决方案1】:

    尽管有名称,在验证过程中error_depth 确实是当前正在检查的证书。请参阅internal_verify 中的while 循环crypto/x509/x509_vfy.c。如果回调或任何内置检查 - 这里签名或过期,在 X509_verify_cert 撤销、策略等的其他地方 - 确定证书是坏的,验证逻辑返回 error_depth 留在导致验证的证书返回,随后从“上方”调用会找到标识“错误”证书的值。

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多