SSL_CTX_load_verify_locations出现问题
Troubles with SSL_CTX_load_verify_locations
我有openssl服务器,不需要允许所有客户端连接。我为这个int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,const char *CApath);
找到了这个函数。它可以很好地处理一个带有一个证书的CA文件,但我需要再添加一个,所以我尝试将证书添加到这个文件中,如下所示:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
但是程序只读取第一个,不读取第二个。接下来,我尝试使用CApath,我将.crt文件重命名为hash
.0,现在程序无法读取它们。我做错了什么?
.crt格式的证书。
工作良好:SSL_CTX_load_verify_locations(ctx, "keys/c1.crt", NULL);
不起作用:SSL_CTX_load_verify_locations(ctx, NULL, "keys/hashes");
两行代码都返回1。
CApath
参数,我认为您需要使用OpenSSL的rehash
(或c_rehash
)实用程序。假设您的证书在keys/
目录中,如下所示:
keys/c1.crt
keys/c2.crt
然后使用openssl rehash
生成OpenSSL期望的链接/名称:
$ openssl rehash keys
准备在SSL_CTX_load_verify_locations()
:中使用的keys/
目录
SSL_CTX_load_verify_locations(NULL, "keys");
希望这能有所帮助!
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 使用mongocxx驱动程序时包含头文件问题