验证返回代码:21(无法验证第一个证书)

验证返回代码:21(无法验证第一个证书)

我有一个自签名证书,我在本地使用它来运行我的 API。如您在屏幕截图中看到的那样,使用 Docker 和 Apache 作为服务器端运行良好。

SSL 工作正常

问题是当我尝试使用 React App 时,当我使用 OpenSSL 命令行验证认证时,请求失败,出现错误

Verify return code: 21 (unable to verify the first certificate)

我找到了一些可能的解决方案,但他们建议使用全链,我不知道他们在说什么。我只有 2 个文件,证书和密钥

在此处输入图片描述

如果有人能指导我如何正确解决这个恼人的问题,那就太好了。

提前致谢,如果我可以提供更多见解,请告诉我。

答案1

为了验证证书,它必须一直链接到信任锚。openssl检查此信任锚是否有keyUsage扩展。如果存在,则必须keyCertSign至少包含。事实证明,如果此扩展存在但不包含,keyCertSign它将返回错误 21。

此外,您的客户端 ( openssl s_client) 必须知道要使用哪个证书作为信任锚。您可以使用以下选项配置openssl使用其他信任锚:-CAfile

openssl s_client -CAfile <your cert file> -connect api.dev.thetripguru.com:443

相关内容