【发布时间】:2020-03-25 18:42:20
【问题描述】:
我们正在编写一个新的服务器/客户端应用程序,需要在 OpenSSL 1.1.0 中验证自签名证书,其中 CN 字段并不重要。
我尝试了以下操作,但似乎没有效果:
X509_VERIFY_PARAM *param = NULL;
param = SSL_get0_param(sslo.ssl);
X509_VERIFY_PARAM_set1_host(param, nullptr, 0);
如何有效地忽略此字段的所有验证?
Shane 回答后更新:
我尝试使用 SSL_CTX_set_verify 设置 verify_callback 。 在回调中,我调用了 X509_STORE_CTX_get_error_depth 。生成的错误代码是 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT,根据文档,这意味着“通过的证书是自签名的,并且在受信任的证书列表中找不到相同的证书。”
这个错误非常笼统,与 CN 无关,如果我只将证书中的 CN 字段更改为适当的值,它就不会发生。
【问题讨论】: