提升 ASIO 异常:use_private_key_file:键值不匹配
boost asio exception: use_private_key_file: key values mismatch
>我正在使用来自boost asio的示例服务器,但我无法运行它并收到此错误,
异常:use_private_key_file:键值不匹配
除了密钥和端口之外,我在程序中绝对没有更改任何内容。
我愿意使用我自己的密钥权限,而且图书馆似乎存在问题,不排除我可能做一些根本性错误的事情,所以请协助。
在程序中,我使用以下行作为键:
context_.use_certificate_chain_file("../sslkeys/server.crt");
context_.use_private_key_file("../sslkeys/server.key", boost::asio::ssl::context::pem);
context_.use_tmp_dh_file("../sslkeys/dh512.pem");
为了创建这些密钥,我执行以下操作:
1-创建证书颁发机构(CA)
openssl genrsa -aes256 -out ca.key 4096
openssl req -new -x509 -extensions v3_ca -key ca.key -out ca.crt -days 36500
2-创建服务器密钥并使用授权密钥对其进行签名
openssl genrsa -des3 -out server.key 2048
openssl x509 -req -days 3650 -in server.csr -signkey ../sslca/ca.key -out server.crt
cp server.key server.key.secure
openssl rsa -in server.key.secure -out server.key
openssl dhparam -out dh512.pem 1024
现在,当我使用此配置运行服务器时,出现该错误...我做错了什么?
如果您需要任何其他信息,请询问。
编辑:
所以我按照命令的建议检查了按键:
openssl rsa -noout -modulus -in server.keyopenssl req -noout -modulus -in server.csropenssl x509 -noout -modulus -in server.crt
前两个产生相同的密钥,而最后一个则不同。我必须确认 crt 文件是使用
openssl x509 -req -days 3650 -in server.csr -signkey ../sslca/ca.key -out server.crt
建议?我的意思是,如果不匹配密钥和证书是一个问题,那么我的签名方法就是错误的!我做错了什么?
根据错误输出,您可以尝试的第一步是通过openssl
命令确保您的证书与私钥匹配。可能会这样做,
openssl rsa -noout -modulus -in server.key
openssl req -noout -modulus -in server.csr
openssl x509 -noout -modulus -in server.crt
如果模数相同,这意味着文件匹配,则查看 boost 程序。否则,可能会出现文件混淆。
相关文章:
- 使用一个考虑到std::map中键值的滚动或换行的键
- 如何使用 std::variant 打印地图键/值?
- 当键值是 std 向量时,为什么使用 at in C++ 访问映射值如此缓慢?
- C++ 映射的键/值的用户自定义名称?
- 试图(稍微)概括C++模板.关联容器键:值反转
- 更改多重映射容器中所有元素的键值
- 如何使用C++和Boost Asio从HTTP发布请求中获取键值
- 插入新键时,它会更改现有键值的地址吗?
- 在C++中共享键值对的最佳方式
- 使用无序映射在STL中存储键值对
- c++同一个键的多个键/值对
- 如何优化C++键值程序以获得更快的运行时间
- C++中的键值对:<val1, val2> 键<frequency>与值一样
- 在 std::unordered_map 中插入新的键/值对会导致"out of range"异常
- 如何将 JSON 键值(我使用 cpp boost 解析)存储在相关数据结构中?
- 读取数组中每个对象的所有键值对
- 如何从 c++ 列出 BDB 中的键/值
- 查找函数在unordered_map中的工作方式是搜索键值
- 这C++ unordered_map怎么有四个值?我以为这是一个键值对
- 获取具有特定距离的键值对数组中的最大数字