boost::asio::ssl::context::add_verify_path
boost::asio::ssl::context::add_verify_path
我想验证一个服务器的证书。我有一个boost::asio::ssl::context
这成功验证了证书:
context.load_verify_file("E:\a\windows\Path\to\certificate\9207bca9.0");
但是,我不希望显式地指定要验证证书的文件。我希望能够将它们放在一个目录中,并告诉上下文使用该文件夹中的文件来验证证书。所以我这样做:
context.add_verify_path("E:\a\windows\Path\to\certificate");
验证不成功
注意:文件名9207bca9.0: 9207bca9是CA证书主题的哈希值,其扩展名为'。0'以满足这里找到的add_verify_path方法的要求(该文件的唯一内容是根证书)。请记住,我已经成功地用这个文件验证了证书):
http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/reference/ssl__context/add_verify_path/overload1.html有什么建议吗?
我能想到的只有两种可能性,第一种是你的哈希值不正确,这可以像这样验证:
openssl x509 -noout -hash -in ca-certificate-file
第二是你的目录配置中有一些错误阻止了OpenSSL使用CA目录,例如,权限和所有权在Linux系统上很重要,不确定这些在Windows平台上有多重要。查明这种错误的唯一方法是通过调试器跟踪验证阶段,并在扫描目录时直接观察代码。
相关文章:
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何强制嵌入式python使用与命令行相同的sys.path?
- [LLVM-9 clang-9 OSX]: std::filesystem::path unrecognized
- 我可以对"int 文件 = open(path, flag);"做点什么吗?
- "#include <path/to/header>"指令的含义(如"#include <loki/Functor.h>")
- Cppcheck 静态代码分析器实际上可以检测到不太常见的警告(如 "Relative Path Traversal (CWE-23)" 或"Buffer Under-read(CWE-127)")吗
- 如何处理异步函数中的异常UWP应用程序getFileFrompathAsync(path);
- 使用std :: filesystem :: path中的double
- 使用谷歌测试编译程序时"g++ is not a full path"
- c++ std::bad_alloc on std::filesystem::path append
- CodeLite opencv path
- 安装 gRPC : ld: 警告: 找不到选项 '-L/<path>/grpc/libs/opt/c-ares' 的目录
- 构建 vcxproj 文件给我一个无信息的错误"The system cannot find the path specified"
- 如何将 g++ 从 MinGW 添加到 PATH
- 如何从 C++ 中的系统 PATH 获取绝对文件路径
- Orocos LTTng 符号查找错误:/path/to/liborocos-rtt-traces-gnulinux.s
- 更改狭窄的字符串编码或丢失std :: filesystem :: path :: imbue
- 如果P从root路径开始,为什么STD :: filesystem :: path :: append替换当前路径
- 错误:无法通过'...'传递非平凡可复制类型的对象'class boost::filesystem::path'
- C++:std::ifstream ifs(path),"path 应该是常量"